6

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();

何か不足していますか?

バイダー

4

1 に答える 1

5

配列の最初の要素を整数に解析する必要があります。

 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);
于 2013-04-22T11:47:18.167 に答える