c# - 如何在 C# 中将数组添加到 SQL 行?

标签 c# sql arrays .net sql-server

我有一个由 StringBuilder 制作的数组:

string[] input;
input = sb.ToString().Split(',');

现在我想将这个“输入”数组中的数据插入到 SQL 行中? 数组中的第一个元素必须是整数。 我怎样才能以最快的方式实现它?

在此先感谢您提供任何帮助或示例。


我已经从 SQL 表中读取、编辑,并且我已经到达 sb 并且我有:

{50001,Pingu,C:\Users\Public\Pictures\Sample Pictures\Penguins.jpg,A,Skift 2,Requill,sQ,,,,,S5,,,,,,,Motvikt,,Kvalité_nr_2,,,,,,,,,,,,}


col(0)  col(1)   col(2) col(3)  col(4)  col(5)  col(6)  col(7)

50001   Pingu    Pathway    A   Skift 2  Requill    SQ    ""

现在我想保存回 SQL。 SQL 中的列数量和名称正在更改。这就是我使用数组的原因。

维多


我已经尝试了以下(见代码)但现在我得到了错误:

必须声明标量变量“@Param”

cbItems 数组包含数据库中列的名称。

            string[] cbItems;
        cbItems = sbItems.ToString().Split(',');

        string[] input;
        input = sb.ToString().Split(',');

        DataSet dataSet = new DataSet();
        dataTable = dataSet.Tables.Add();

        SqlConnection cn = new SqlConnection(connString);

        int firstElement;
        Int32.TryParse(input[0], out firstElement);

        string sql = "INSERT INTO UserData1 (Anställningsnummer) VALUES (@ID)";

        cn.Open();
        SqlCommand cmd = new SqlCommand(sql, cn);
        cmd.Parameters.AddWithValue("@ID", firstElement);
        cmd.ExecuteNonQuery();

        int i = 1;
        foreach (string r in input)
        {
            string paramName = cbItems[i].ToString();
            string anyElement= input[i].ToString();
            SqlCommand myInsertCmd = new SqlCommand("INSERT INTO UserData1(" + paramName + ") VALUES(@Param)", cn);

            cmd.Parameters.AddWithValue("@Param", anyElement);

            i++;
            myInsertCmd.ExecuteNonQuery();
        }

        cn.Close();

我错过了什么吗?

维多

最佳答案

您必须将数组中的第一个元素解析为整数。

 int firstElement;
 Int32.TryParse(input[0], out firstElement);

然后您可以使用 firstElement 并将其添加为 SQL 参数

string sql = "INSERT INTO TABLE (ID) VALUES (@ID)";

SqlCommand cmd = new SqlCommand(sql, _connection);
cmd.Parameters.AddWithValue("@ID", firstElement);

关于c# - 如何在 C# 中将数组添加到 SQL 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16146337/

相关文章:

c# - 从数组转换为 ICollection<T>

MySQL:传递给具有多列和行的PROCEDURE查询结果

c# - 如何更改文件权限以阻止 Vista 写入 VirtualStore 目录中的文件?

javascript - 如果 reCaptcha 仍未完成,则停止或中断用户登录

sql - 在sql oracle中使用regexp_substr获取特定单词后的单词

sql - 在 CTE 内部使用 COUNT() 比在 CTE 外部使用更昂贵?

java - 对齐和缩进数组元素 - Java

javascript - 如何使用 javascript 中的范围在最小值和最大值之间创建比例?

python - 为什么此列表以错误的顺序返回 x 和 y?

c# - 为什么有时 DateTime.TryParse 工作而其他时间只有 DateTime.ParseExact 工作?