如何在c#中添加数组到SQL行

本文关键字:数组 SQL 添加 | 更新日期: 2023-09-27 18:10:23

我用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中的列数量和名称正在发生变化。这就是为什么我用array

·维多


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

必须声明标量变量"@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();

我错过了什么吗?

·维多

如何在c#中添加数组到SQL行

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

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

您可以使用firstElement并将其添加为SQL Parameter

string sql = "INSERT INTO TABLE (ID) VALUES (@ID)";
SqlCommand cmd = new SqlCommand(sql, _connection);
cmd.Parameters.AddWithValue("@ID", firstElement);