Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用foreach访问列表_C#_Sql Server_Collections_Foreach - Fatal编程技术网

C# 使用foreach访问列表

C# 使用foreach访问列表,c#,sql-server,collections,foreach,C#,Sql Server,Collections,Foreach,我使用foreach循环访问列表中存储的对象(类型为fine)的值。然后调用数据库查询,将这些值保存到数据库中 这是我正在使用的代码: foreach (Meal ml in mVals) { mID = ml.mealID; MessageBox.Show(Convert.ToString(mID)); string oString2 = " INSE

我使用foreach循环访问列表中存储的对象(类型为fine)的值。然后调用数据库查询,将这些值保存到数据库中

这是我正在使用的代码:

foreach (Meal ml in mVals)
            {
                    mID = ml.mealID;
                    MessageBox.Show(Convert.ToString(mID));
                    string oString2 = " INSERT into [dbo].[OrderMeal] (orderId,mealId,quantity) " + " VALUES ('" + orderId + "','" + mID + "','" + Convert.ToInt32(quant.Text) + "') ;";
                    SqlCommand oCmd2 = new SqlCommand(oString2, myConnection);
                    oCmd2.ExecuteNonQuery();

            }
但是,这仅适用于列表中的最后一个值。下一个循环迭代似乎在执行相同的函数,从而保存相同的记录,给出一个

违反主键约束的错误


我在列表中循环的方式是否有错误

订单餐表的结构是什么? 可能您的表中有主键,您需要检查您是否没有复制它

尝试从sql管理列表中输入值。 确认列表中的每个项目中没有特殊字符(如逗号和撇号)


我认为可以连接一组insert语句,然后执行EXCEUTENONQUERY以获得更好的性能

能否添加有关
orderDine
表结构的信息?OrderID在哪里?您没有向orderID传递任何内容吗?您的代码让我得出结论,您在整个enitre循环中传递的是相同的
orderID
。在做其他事情之前,您应该先了解参数化SQL。停止将值直接嵌入SQL—这是非常不安全的(例如,面对包含撇号的正常值,它非常脆弱。)@CDamsinghe:他们想破坏自己的数据库吗?你确定他们没有误解吗?我会非常紧张,如果客户坚持故意包含SQL注入漏洞,那么我会编写任何代码。