string updateCmd="update tblbooks set  BookName=@bookname,State=@state where BookID like @bookid";
cmd=new SqlCommand(updateCmd,con);

cmd.Parameters.Add(new SqlParameter("@bookid",SqlDbType.Char,10));
cmd.Parameters["@bookid"].Value=this.TxtBookID.Text; cmd.Parameters.Add(new SqlParameter("@bookname",SqlDbType.Char,10));
cmd.Parameters["@bookname"].Value=this.TxtBookName.Text; cmd.Parameters.Add(new SqlParameter("@state",SqlDbType.Char,1));
cmd.Parameters["@state"].Value=this.TxtBookState.Text;
try
{
int res=cmd.ExecuteNonQuery();
if(res>0)
{
MessageBox.Show("修改成功");
}
else
{
MessageBox.Show("修改失败");
}
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
为什么不能成功呢?

解决方案 »

  1.   

    SqlCommand cmd = new SqlCommand("update tblbooks set  BookName=@bookname,State=@state where BookID like @bookid",con); 
    cmd.Parameters.AddWithValue("bookname",TxtBookName.Text);
    cmd.Parameters.AddWithValue("state",TxtBookState.Text);
    cmd.Parameters.AddWithValue("bookid","%"+TxtBookID.Text+"%");
    cmd.ExecuteNonQuery(); 
      

  2.   

    cmd.Parameters["@bookid"].Value="%"+this.TxtBookID.Text+"%"; 
      

  3.   

    找不到AddWithValue啊,4楼的也不行啊
      

  4.   

    编号是唯一的吧 怎么写成like呢
    想修改它一类的 那给@bookid 赋值的时候就要用到%
    把like 改成 "=" 啦 不能是Like的
      

  5.   

    AddWithValue 找不到  就直接加试试 行不行
    cmd.Parameters.Add(new SqlParameter("@bookid",SqlDbType.Char,10)); 
    cmd.Parameters["@bookid"].Value="%"+this.TxtBookID.Text+"%";