C# 更新查询SQL的问题
我正在写一个c代码,试图更新表中10列中的4列。以下是我发送查询参数的函数类型:C# 更新查询SQL的问题,c#,sql,sql-server,visual-studio,C#,Sql,Sql Server,Visual Studio,我正在写一个c代码,试图更新表中10列中的4列。以下是我发送查询参数的函数类型: public int checkout_visitor(int check_inn, int checkout, String time_out, String date_out, String cnic) 现在,我在程序的某个地方调用这个函数,在参数中提供值: checkout_visitor(chk_in,chk_out,t_out,dt_out,idcardnum); 我用来更新我的列的查询由以下公式给出
public int checkout_visitor(int check_inn, int checkout, String time_out, String date_out, String cnic)
现在,我在程序的某个地方调用这个函数,在参数中提供值:
checkout_visitor(chk_in,chk_out,t_out,dt_out,idcardnum);
我用来更新我的列的查询由以下公式给出:
String query2 = " UPDATE visit_detail SET[check_in] = " + check_inn + "[check_out] = " + checkout + "[time_out] = " + time_out + "[date_out] =" + date_out + "where visit_detail.v_id = "+ v_idd;
给我一个例外,chkout附近的语法不正确。我哪里错了??语法正确吗?我如何纠正它
代码:
您看到结果查询了吗?在我看来,您缺少了一些逗号,但您应该打印(并发布)结果查询,以便更好地了解问题。您在列名之间缺少“,”。
它类似于更新表集合col1=3,col2='test'问题: 1.您没有正确使用逗号分隔参数
,
2.您没有给出
设置
和检入
参数之间的空间
试试这个:
String query2 = "UPDATE visit_detail SET [check_in] = " + check_inn + ",[check_out] = " + checkout + ",[time_out] = '" + time_out + "',[date_out] ='" + date_out + "' where visit_detail.v_id = "+ v_idd;
问题在于
query2
string将是以下内容:
UPDATE visit_detail SET[check_in] = " 1[check_out] = 2[time_out] = some time[date_out] =some datewhere visit_detail.v_id = 5
因此,您已经可以看到有不正确的datewhere
,字符串参数周围也没有,
字符,参数之间也没有逗号
对此的快速解决办法是:
String query2 = String.Format("UPDATE visit_detail SET [check_in]={0}, [check_out]={1}, [time_out]='{2}', [date_out]='{3}' where visit_detail.v_id={4};", check_inn, checkout, time_out, date_out, v_idd);
但这仍然是无效的。如果超时
包含”
字符,您将再次收到错误
您真正应该使用的是:
这是一个传递参数到你的命令的正确方式,所有的问题都会为你负责。你忘记了SET和CHIGION SET[CHECZIN ] = > SET[CHECKIN ]之间的空间,请考虑使用参数而不是盲目地连接字符串值。这些用户是否可以输入?我想输入值
1234');下表访问详细信息--代码>我的身份证号码:“更新就诊详情集[check_in]=0[check_out]=1[time_out]=04:43 PM[date_out]=12-9-2013where visit_detail.v_ID=2”@user3081555:尝试我的解决方案,只需替换我的答案中提供的query2即可。@user3081555:用单引号括起日期值来编辑答案。现在检查
String query2 = String.Format("UPDATE visit_detail SET [check_in]={0}, [check_out]={1}, [time_out]='{2}', [date_out]='{3}' where visit_detail.v_id={4};", check_inn, checkout, time_out, date_out, v_idd);