日期:2014-05-18  浏览次数:21072 次

帮忙调试下一段代码
HTML code

        SqlConnection conn = new SqlConnection("Data Source=110.136.48.24;Initial Catalog=hope_loan;Integrated Security=True");
        conn.Open();
        string sql;
        if (Request.QueryString["emp_id"]== "")
        { 
            sql = "select * from [hope_empinfo] where hope_emp_name='" + Session["hope_user_name"] + "'";
        }
        else
        {
            sql = "select * from [hope_empinfo] where hope_emp_id=" + Request.QueryString["emp_id"];
        }
       // string sql = "select * from [hope_empinfo] where hope_emp_name='admin'";
        SqlDataAdapter ada = new SqlDataAdapter(sql, conn);
        DataSet ds = new DataSet();
        ada.Fill(ds);
        DetailsView1.DataSource = ds;
        DetailsView1.DataBind();



错误的提示是:

第 1 行: '=' 附近有语法错误。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Data.SqlClient.SqlException: 第 1 行: '=' 附近有语法错误。

源错误: 


行 33: SqlDataAdapter ada = new SqlDataAdapter(sql, conn);
行 34: DataSet ds = new DataSet();
行 35: ada.Fill(ds);
行 36: DetailsView1.DataSource = ds;
行 37: DetailsView1.DataBind();
 
各位帮帮忙啊!在线等

------解决方案--------------------
这段代码本身没有语法错误,但在Request.QueryString["emp_id"]==null的时候拼接的SQL语句会有语法错误

可以改为
if (Request.QueryString["emp_id"]==null || Request.QueryString["emp_id"]== "")

sql = "select * from [hope_empinfo] where hope_emp_name='" + Session["hope_user_name"] + "'";
}
else
{
sql = "select * from [hope_empinfo] where hope_emp_id=" + Request.QueryString["emp_id"];
}