【发布时间】:2013-04-22 11:43:48
【问题描述】:
我有一个使用 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.TryParse() 方法,如果它是 int 则返回一个值,否则不返回。试一试,如果您需要详细信息,请告诉我。
-
每个项目都应保存在单独的单元格/列中。
标签: c# sql arrays .net sql-server