http://expert.csdn.net/Expert/topic/1842/1842517.xml?temp=.2957727

解决方案 »

  1.   

    恩,我的意思是:
    SqlConnection myConnection= new SqlConnection("server='127.0.0.1';uid=sa;pwd=123;database=book");
    string SearchingBook;
    SqlDataAdapter myCommand=new SqlDataAdapter();
    SearchingBook="select ISBN,图书名,出版社,定价 from book where 图书名 like @name";
    myCommand = new SqlDataAdapter(SearchingBook, myConnection);
    myCommand.GetFillParameters(new SqlParameter("@name", SqlDbType.NVarChar, 50));
    myCommand.GetFillParameters["@name"].Value = SearchKeytxt.Text;
    这样为什么不行,但用SqlCommond 定义的对象就可以
      

  2.   

    楼主你将
    SearchingBook="select ISBN,图书名,出版社,定价 from book where 图书名 like @name";
    改为:
    SearchingBook="select ISBN,图书名,出版社,定价 from book where 图书名 like ?";
    其他不变,你试试
      

  3.   

    不行,它提示我getfillparameters方法用法错误
      

  4.   

    SqlDataAdapter mda = new SqlDataAdapter();
     mda.SelectCommand = new SqlCommand("select ISBN,图书名,出版社,定价 from book where 图书名 like ?",myConnection);
                 mda.SelectCommand.Parameters.Add("@图书名",SqlDbType.NVarChar, 50);
     mda.SelectCommand.Parameters[0].Value= SearchKeytxt.Text;
    试试这个
      

  5.   

    如果还是不行.你可以参考这个.它在我的程序上执行是正确的.
    OleDbConnection m_Conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\demo.mdb;Persist Security Info=True");
    m_Conn.Open();
                OleDbDataAdapter  m_Adapter = new OleDbDataAdapter();
                m_Adapter.SelectCommand = new OleDbCommand("select * from T_CodeSet_Item where CodeSet_ID=?",m_Conn);
                m_Adapter.SelectCommand.Parameters.Add("@CodeSet_ID",OleDbType.VarChar,50);
    m_Adapter.SelectCommand.Parameters[0].Value="AB";
               
    DataSet ds = new DataSet();
    m_Adapter.Fill(ds,"数据");
                this.dataGrid1.DataSource = ds;