比如:sql="select * from t where id = ?"
然后设置? = 10 如果自己组装sql = "select * from t where id = " + id,容易出错

解决方案 »

  1.   

    sql="select * from t where [id] = @id"selectCommand.Parameters.Add("@id", SqlDbType.Int).Value = 10;
      

  2.   

    SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]); 
    SqlCommand comm=new SqlCommand("update tb1 set vName=@vName,iAge=@iAge where ID=@id",conn); 
    SqlParameter parm1=new SqlParameter("@vName",SqlDbType.NVarChar,50); 
    parm1.Value=((TextBox)e.Item.FindControl("name")).Text; 
    SqlParameter parm2=new SqlParameter("@iAge",SqlDbType.Int); 
    parm2.Value=((TextBox)e.Item.FindControl("age")).Text; 
    SqlParameter parm3=new SqlParameter("@id",SqlDbType.Int); 
    parm3.Value=this.DataGrid1.DataKeys[e.Item.ItemIndex]; 
    comm.Parameters.Add(parm1); 
    comm.Parameters.Add(parm2); 
    comm.Parameters.Add(parm3); 
    conn.Open(); 
    comm.ExecuteNonQuery(); 
    conn.Close(); 
      

  3.   

    Parameters类存储SQLCOMMAND的参数
      

  4.   

    sql="select * from t where [id] = @id"selectCommand.Parameters.Add("@id", SqlDbType.Int).Value = 10;就这样就行了。而且最好是用参数的形式,安全性更高点。