发生了Sql异常.....附近的语法不正确 [英] Sql Exception occured.....Incorrect syntax near

查看:96
本文介绍了发生了Sql异常.....附近的语法不正确的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的代码如下:尽管我试图处理Sql异常但仍无法正常工作。我应用了断点,Data Visualizer没有显示数据表...... plz help



 conn.Open(); 
SqlDataAdapter da = new SqlDataAdapter( select *来自tbl_reg,其中user_nm ='' + userInput + ,conn);
DataTable dt = new DataTable();
尝试
{
da.Fill(dt);
conn.Close();
if (dt.Rows.Count == 0
{
lbl_conf.Visible = true ;
lbl_conf.Text = 抱歉......没有找到数据;
}
else
{
lbl_conf.Visible = true ;
lbl_conf.Text = 继续;
}
}
catch (SqlException ex)
{
if (ex SqlException)
{
lbl_conf.Visible = true ;
lbl_conf.Text = 处理Sql异常;
}
else
{
lbl_conf.Visible = true ;
lbl_conf.Text = 发生未知异常;
}
}

解决方案

除了Krunal所说的,不要那样做。

不要连接字符串来构建SQL命令。它让您对意外或故意的SQL注入攻击持开放态度,这可能会破坏您的整个数据库。请改用参数化查询。

 SqlDataAdapter da =  new  SqlDataAdapter(  select * from tbl_reg where user_nm = @ UN,conn); 
da.SelectCommand.Parameters.AddWithValue( @ UN,userInput);


您好,



您的变量之前似乎有两个单引号,之后没有:



SqlDataAdapter da = new SqlDataAdapter(select * from tbl_reg where user_nm =''+ userInput +,conn);



尝试:



SqlDataAdapter da = new SqlDataAdapter(select * from tbl_reg where user_nm ='+ userInput +',conn);



或者更好的是仍然使用参数化查询。


select * from tbl_reg where user_nm = 'userInput +'

尝试使用此查询。

或者更好地使用参数化查询。



 SqlDataAdapter da = new SqlDataAdapter(select * from tbl_reg where user_nm = @ user_name,conn);< br /> 
da.SelectCommand.Parameters .AddWithValue(@用户_名称,用户名;









-KR


My code are as follow: Even though I tried to handle the Sql Exception but still not working. I applied breakpoint and the Data Visualizer does not show the datatable......plz help

conn.Open();
SqlDataAdapter da = new SqlDataAdapter("select * from tbl_reg where user_nm=''" + userInput + "", conn);
DataTable dt = new DataTable();
try
{
   da.Fill(dt);
   conn.Close();
   if (dt.Rows.Count == 0)
   {
      lbl_conf.Visible = true;
      lbl_conf.Text = "Sorry....No data found";
   }
   else
   {
      lbl_conf.Visible = true;
      lbl_conf.Text = "Keep going";
   }
}
catch(SqlException ex)
{
   if (ex is SqlException)
   {
      lbl_conf.Visible = true;
      lbl_conf.Text = "Handle the Sql Exception";
   }
   else
   {
      lbl_conf.Visible = true;
      lbl_conf.Text = "Unknown Exception occured";
   }
}

解决方案

In addition to what Krunal says, don't do it like that.
Do not concatenate strings to build a SQL command. It leaves you wide open to accidental or deliberate SQL Injection attack which can destroy your entire database. Use Parametrized queries instead.

SqlDataAdapter da = new SqlDataAdapter("select * from tbl_reg where user_nm=@UN", conn);
da.SelectCommand.Parameters.AddWithValue("@UN", userInput);


Hello,

You appear to have two single quotes before your variable and none after:

SqlDataAdapter da = new SqlDataAdapter("select * from tbl_reg where user_nm=''" + userInput + "", conn);

Try:

SqlDataAdapter da = new SqlDataAdapter("select * from tbl_reg where user_nm='" + userInput + "'", conn);

Or better still use a parameterised query.


"select * from tbl_reg where user_nm="'"+ userInput + "'"
try with this query.
Or better use a parameterised query.

SqlDataAdapter da = new SqlDataAdapter("select * from tbl_reg where user_nm=@user_name", conn);<br />
da.SelectCommand.Parameters.AddWithValue("@user_name", username);





-KR


这篇关于发生了Sql异常.....附近的语法不正确的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆