[DataObjectMethod(DataObjectMethodType.Select)] 
public static DataTable GetGuestByname(string name) 

try 

string strconnection = ConfigurationManager.ConnectionStrings["123"].ConnectionString; 
SqlConnection conn = new SqlConnection(strconnection); 
string sql = "select * from guest where name=@name"; 
SqlDataAdapter da = new SqlDataAdapter(sql,conn); 
da.SelectCommand.Parameters.Add("@name", SqlDbType.VarChar,50).Value = name; 
DataSet ds = new DataSet(); 
conn.Open(); 
da.Fill(ds,"guest"); 
return ds.Tables["guest"]; 

catch 

return null; 


在Catch下面的"{"提示!号,提示错误:被准备语句 '(@name varchar(50))select * from guest where name=@name' 需

解决方案 »

  1.   

    string strconnection = ConfigurationManager.ConnectionStrings["123"].ConnectionString; 
    SqlConnection conn = new SqlConnection(strconnection); 
    string sql = "select * from guest where name=@name"; 
    da.SelectCommand.Parameters.Add("@name", SqlDbType.VarChar,50).Value = name; 
    SqlDataAdapter da = new SqlDataAdapter(sql,conn); 
    DataSet ds = new DataSet(); 
    da.Fill(ds,"guest"); 
    return ds.Tables["guest"]; 
      

  2.   

    被准备语句 '(@name varchar(50))select * from guest where name=@name' 需要参数 @name,但未提供该参数。
      

  3.   

    SqlDataAdapter da = new SqlDataAdapter(sql,conn); 这句中sql语句已被执行,但参数的值在后面,所以这里参数是没有值的,而且sqlDataAdapter不用显式打开连接,它在执行
    SqlDataAdapter da = new SqlDataAdapter(sql,conn); 会隐式打开连接
      

  4.   


    不行呀  提示错误是:
     编译器错误消息: CS0841: 局部变量“da”在声明之前无法使用
      

  5.   


    string sql = "select * from guest where name=@name"; 
    da.SelectCommand.Parameters.Add("@name", SqlDbType.VarChar,50).Value = name;
    SqlDataAdapter da = new SqlDataAdapter(sql,conn); 换个顺序  试试....
      

  6.   

    试下
    string strconnection = ConfigurationManager.ConnectionStrings["123"].ConnectionString; 
    SqlConnection conn = new SqlConnection(strconnection); 
    string sql = "select * from guest where name=@name"; 
    da.SelectCommand.Parameters.Add("@name",SqlDbType.VarChar,50);
    da.SelectCommand.Parameters("@name").Value = name;
    SqlDataAdapter da = new SqlDataAdapter(sql,conn); 
    DataSet ds = new DataSet(); 
    da.Fill(ds,"guest"); 
    return ds.Tables["guest"]; 
      

  7.   

    string strconnection = ConfigurationManager.ConnectionStrings["123"].ConnectionString; 
    SqlConnection conn = new SqlConnection(strconnection); 
    string sql = "select * from guest where name=@name";
    SqlDataAdapter da = new SqlDataAdapter(sql,conn);  
    da.SelectCommand.Parameters.Add("@name",SqlDbType.VarChar,50); 
    da.SelectCommand.Parameters("@name").Value = name; DataSet ds = new DataSet(); 
    da.Fill(ds,"guest"); 
    return ds.Tables["guest"]; 
      

  8.   


    编译器错误消息: CS1955: 不能像使用方法那样使用不可调用的成员“System.Data.SqlClient.SqlCommand.Parameters”。
    //da.SelectCommand.Parameters("@name").Value = name; 
      

  9.   

    da.SelectCommand.Parameters("@name").Value = name; 
    C#中索引使用[]的
    da.SelectCommand.Parameters["@name"].Value = name; 
      

  10.   


    这个可能才是正解。另外,da在申明以及实例化的时候是不会隐式打开链接的,只有在fill的时候才会打开链接,并且在fill之前连接是关闭的,fill完了后他会关闭连接,相反,他依然保持打开状态。