Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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# SQL记录条目,不同的测试用例_C#_Mysql_Sql - Fatal编程技术网

C# SQL记录条目,不同的测试用例

C# SQL记录条目,不同的测试用例,c#,mysql,sql,C#,Mysql,Sql,关于C#存储过程…和SQL DB的一个小问题: 将变量值从C#传递到存储过程时,有时 INSERT INTO tablename (column1 name, column2 name, column3 name, columnN name) VALUES (@the actual values1, @values2, @valueN); 其他情况下,您没有列名,只有输入的值。。。 如果我键入这样的内容,会发生什么情况(假设表有3列,分别称为“bob”、“ash”和“will”): 它将如何

关于C#存储过程…和SQL DB的一个小问题: 将变量值从C#传递到存储过程时,有时

INSERT INTO tablename (column1 name, column2 name, column3 name, columnN name) 
VALUES (@the actual values1, @values2, @valueN);
其他情况下,您没有列名,只有输入的值。。。 如果我键入这样的内容,会发生什么情况(假设表有3列,分别称为“bob”、“ash”和“will”):


它将如何影响条目?

第一个查询将在
ash
中插入默认值,其他两个将不会解析。

第一个查询将正确插入该记录(如果没有主键冲突)。
第二次查询失败,因为您有三个值和两个字段。

第三个查询失败,因为两个字段只有一个值。

正如Quassnoi和Marco指出的sql端的错误问题

在C#中调试时,将出现以下错误

INSERT语句中的列少于指定的值 在VALUES子句中。values子句中的值数必须为 匹配INSERT语句中指定的列数


在SQL中,第一个查询将成功执行,而对于第二个查询,将出现以下错误: INSERT语句中的列少于values子句中指定的值。values子句中的值数必须与INSERT语句中指定的列数匹配。 第三个查询也会产生以下错误:
INSERT语句中的列多于values子句中指定的值。values子句中的值数必须与INSERT语句中指定的列数相匹配。

请格式化您的问题,使其可读。您的问题没有意义。存储过程的定义方式决定了如何从C#对其进行调用编程。也许你应该发布你的存储过程,看看它是如何被调用的。如果你不知道你的数据将进入哪些字段,那么你就做了一些非常错误的事情。你怎么知道“hello”这个值是指Bob、will还是ash?这就不同了。第三个查询也不会解析。@Quassnoi:我不能尝试,但如果你告诉我我编辑了我的答案,那好吧。谢谢:)如果表中的第三个字段不允许空值,则第一个字段也可能不起作用。
INSERT INTO tablename (bob, will) VALUES ("hi","hello");
 OR 
INSERT INTO tablename (bob, will) VALUES ("hi","hello","okay"); 
OR 
INSERT INTO tablename (bob, will) VALUES ("hello");