c# - 如何将数组插入包含新行的数据库表
问题描述
我正在尝试将大小为 2000 的数组插入包含 13 列的数据库表中,第一行从数组 [0] 到数组 [12],然后在第二行从数组 [13] 到数组 [25] .. ...这是包含列名称的命令,但我无法在我的尝试下方安排一个 for 循环以插入表中,但它不起作用。我已经搜索了互联网,但我找不到和理解正确的方法,谢谢你的助手
string shpttrackingSql = ("INSERT INTO shpttrackingTable Values (@Checkpoint, @Stn, @Location," +
"@DateTime, @Pcs, @Route, @Cycle, @Stat, @Pgln, @Count, @Last, @Remarks, @Comments)");
// Inserting data from array to Tracking Table
SqlCommand shpttrackingCmd = new SqlCommand(shpttrackingSql, con);
for (int i=0;i<2000;i++)
{
shpttrackingCmd.Parameters.AddWithValue("@Checkpoint", trackingArray[i]); //Checkpoint
shpttrackingCmd.Parameters.AddWithValue("@Stn", trackingArray[i]); //Stn
shpttrackingCmd.Parameters.AddWithValue("@Location", trackingArray[i]); //Location
shpttrackingCmd.Parameters.AddWithValue("@DateTime", trackingArray[i]); //Date and Time
shpttrackingCmd.Parameters.AddWithValue("@Pcs", trackingArray[i]); //Pieces
shpttrackingCmd.Parameters.AddWithValue("@Route", trackingArray[i]); //Route
shpttrackingCmd.Parameters.AddWithValue("@Cycle", trackingArray[i]); //Cycle
shpttrackingCmd.Parameters.AddWithValue("@Stat", trackingArray[i]); //Stat
shpttrackingCmd.Parameters.AddWithValue("@Pgln", trackingArray[i]);
shpttrackingCmd.Parameters.AddWithValue("@Count", trackingArray[i]);
shpttrackingCmd.Parameters.AddWithValue("@Last", trackingArray[i]);
shpttrackingCmd.Parameters.AddWithValue("@Remarks", trackingArray[i]); //Remarks
shpttrackingCmd.Parameters.AddWithValue("@Comments", trackingArray[i]); //Comments
con.Open();
shpttrackingCmd.ExecuteNonQuery();
con.Close();
}
解决方案
我通过添加 shpttrackingCmd.Parameters.Clear(); 解决了循环内的参数;在循环内如下
for (int i=13;i<53;i+=13)
{
str = trackingArray[i+0];
str = str.Replace("\r\n </a>", "").Trim();
substr = str.Substring(str.Length - 30).Trim();
shpttrackingCmd.Parameters.AddWithValue("@Checkpoint", substr); //Checkpoint
shpttrackingCmd.Parameters.AddWithValue("@Stn", trackingArray[i+1]); //Stn
shpttrackingCmd.Parameters.AddWithValue("@Location", trackingArray[i+2]); //Location
shpttrackingCmd.Parameters.AddWithValue("@DateTime", trackingArray[i+3]); //Date and Time
shpttrackingCmd.Parameters.AddWithValue("@Pcs", trackingArray[i+4]); //Pieces
shpttrackingCmd.Parameters.AddWithValue("@Route", trackingArray[i+5]); //Route
shpttrackingCmd.Parameters.AddWithValue("@Cycle", trackingArray[i+6]); //Cycle
shpttrackingCmd.Parameters.AddWithValue("@Stat", trackingArray[i+7]); //Stat
shpttrackingCmd.Parameters.AddWithValue("@Pgln", trackingArray[i+8]);
shpttrackingCmd.Parameters.AddWithValue("@Count", trackingArray[i+9]);
shpttrackingCmd.Parameters.AddWithValue("@Last", trackingArray[i+10]);
shpttrackingCmd.Parameters.AddWithValue("@Remarks", trackingArray[i+11]); //Remarks
shpttrackingCmd.Parameters.AddWithValue("@Comments", trackingArray[i+12]); //Comments
con.Open();
shpttrackingCmd.ExecuteNonQuery();
con.Close();
shpttrackingCmd.Parameters.Clear();
}
推荐阅读
- php - 如何将所有行与 column = 更新为除 1 之外的值,然后将其更新为另一个值?
- kubernetes - 用于响应内容操作的 Kubernetes Ingress Gateway
- visual-studio-code - 需要帮助在 VSCode 中为 Rstudio 的 pandoc 分配全局设置,以 .rmd 输出格式编织 pdf_document
- marklogic - 如何编写查询以匹配多个值
- substrate - 在 deposit_event 中将 Enum RawEvent 转换为关联类型 Event
- elasticsearch - Elasticsearch 过滤器不过滤
- c# - 在Excel c#中锁定单元格有什么问题
- java - 如何在java中从MySQL打印出特定列
- reactjs - 在打字稿中使用类型对象的键推断类型
- c# - 有没有办法使用 Windows 10 API 查找所有 COM 端口设备