首页 > 解决方案 > 如何将数组插入包含新行的数据库表

问题描述

我正在尝试将大小为 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();
            }

标签: c#mysql

解决方案


我通过添加 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();
            }

推荐阅读