Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.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#如何捕获错误并调试准备好的语句?_C#_Mysql_Prepared Statement - Fatal编程技术网

C#如何捕获错误并调试准备好的语句?

C#如何捕获错误并调试准备好的语句?,c#,mysql,prepared-statement,C#,Mysql,Prepared Statement,您好,下面是我的C#代码片段和多个insert语句。我将它们放在一个事务括号中,并使用准备好的语句。例如,我的挑战我知道我在now cmdText3中遇到了问题,但没有生成任何错误消息。在这种情况下,我应该在哪里添加额外的try和catch来帮助我调试并提醒我错误?在prepared语句中,我可以看到使用数据执行的确切查询是什么吗 myCon getMyCon1=新myCon(); MySqlConnection con=getMyCon1.GetConnection() 您可以使用Sql Pr

您好,下面是我的C#代码片段和多个insert语句。我将它们放在一个事务括号中,并使用准备好的语句。例如,我的挑战我知道我在now cmdText3中遇到了问题,但没有生成任何错误消息。在这种情况下,我应该在哪里添加额外的try和catch来帮助我调试并提醒我错误?在prepared语句中,我可以看到使用数据执行的确切查询是什么吗

myCon getMyCon1=新myCon(); MySqlConnection con=getMyCon1.GetConnection()


您可以使用Sql Profiler应用程序查看确切的查询。这将允许您查看生成的查询和来自Sql Server的响应

以下内容:

String cmdText3 = "INSERT INTO record2(rID,supplierName,invoiceDate,invoiceNo) VALUES(@gafID,@supplierName,@invoiceDate,@invoiceNo,)";
与您在此处指定的第一个参数不对应:

cmd.Parameters.AddWithValue("@rID", rID);
cmd.Parameters.AddWithValue("@supplierName", supplierName);
cmd.Parameters.AddWithValue("@invoiceDate", invoiceDate);
cmd.Parameters.AddWithValue("@invoiceNo", invoiceNo);

替换:

VALUES(@gafID,@supplierName,@invoiceDate,@invoiceNo,)
与:


或者,您可以重新命名:

cmd.Parameters.AddWithValue("@rID", rID);
致:


问题是我的数据库是mysql而不是sqlserver?我还可以在哪里添加try和catch来让我知道哪个特定的insert有问题?为什么要对非Sql server数据库使用Sql特定的类?您需要为您的DB服务器使用正确的ADO.Net库;。当你说sql特定的类时,我不明白你说的是什么?哈哈,它没有向我注册你是从类的名称开始使用MySql的。我为此道歉。话虽如此,我相信MySql也有评测工具可用。这里有一个(谷歌是你的朋友):好的,基本上这个工具要做的就是保存查询,是吗?我的下一个挑战是基于我的代码,我可以做一些额外的尝试和捕捉来突出哪个查询有问题吗?对不起,我在我的问题中已经纠正了这一点。我错抄了。但回到我的实际问题上来,对于哪一个查询存在问题,您有什么建议?
VALUES(@rID,@supplierName,@invoiceDate,@invoiceNo)
cmd.Parameters.AddWithValue("@rID", rID);
cmd.Parameters.AddWithValue("@gafID", rID);