public void Update()
{
Form3 f3 = new Form3(this);
int selectRow = dataGV.CurrentRow.Index;
string MName = dataGV.Rows[selectRow].Cells[2].Value.ToString().Trim();
string source = "server=PC-201111301259;" + "integrated security=SSPI;" + "database=mystudy";
string select = "UPDTAE learning SET USERID="+f3.txtRESOUCEID.Text.Trim()+"WHERE RESOUCEID= " + MName;
SqlConnection conn = new SqlConnection(source);
conn.Open();
SqlCommand cmd = new SqlCommand(select, conn);
int rowsReturned = cmd.ExecuteNonQuery();
conn.Close();提示sql语句‘=’附近有错误~~~求高人指点,我的为什么错了?
{
Form3 f3 = new Form3(this);
int selectRow = dataGV.CurrentRow.Index;
string MName = dataGV.Rows[selectRow].Cells[2].Value.ToString().Trim();
string source = "server=PC-201111301259;" + "integrated security=SSPI;" + "database=mystudy";
string select = "UPDTAE learning SET USERID="+f3.txtRESOUCEID.Text.Trim()+"WHERE RESOUCEID= " + MName;
SqlConnection conn = new SqlConnection(source);
conn.Open();
SqlCommand cmd = new SqlCommand(select, conn);
int rowsReturned = cmd.ExecuteNonQuery();
conn.Close();提示sql语句‘=’附近有错误~~~求高人指点,我的为什么错了?
where前面少个空格用string.Format 会不会更好一些呢。字符串拼接StringBuild也是不错的选择。
public void Update()
{
Form3 f3 = new Form3(this);
int selectRow = dataGV.CurrentRow.Index;
string MName = dataGV.Rows[selectRow].Cells[2].Value.ToString().Trim();
string source = "server=PC-201111301259;" + "integrated security=SSPI;" + "database=mystudy";
string select = "UPDTAE learning SET USERID="+f3.txtRESOUCEID.Text.Trim()+" WHERE RESOUCEID= " + MName;
SqlConnection conn = new SqlConnection(source);
conn.Open();
SqlCommand cmd = new SqlCommand(select, conn);
int rowsReturned = cmd.ExecuteNonQuery();
conn.Close();
//你的USERID是数字类型,而你的f3.txtRESOUCEID.Text.Trim()却是string类型,紧好转换一下RESOUCEID =等号前加个空格
我这个是sql语句的拼接,不牵扯类型转换。如果是我要把textbox里面的数据输入到数据表中,是不是就要类型转换了?我是这么认为的。
引用sql文的结果是这个样子的,果然是f3.txtUSERID.Text.Trim()没有取到东西,有没有能帮我改改的。
用string.Format也可以
string.Format("UPDTAE learning SET USERID='{0}' where RESOUCEID='{1}'",f3.txtRESOUCEID.Text.Trim(),MName)
没取到值,那就调试啊。TextBox你输入了值怎么回去不到值呢??
设为空值可以string userID=f3.txtUSERID.Text.Trim()==""?"NULL":f3.txtUSERID.Text.Trim();
可以用这个userID代替f3.txtUSERID.Text.Trim(),前提是数据库中USERID列允许空值存在
除了大家说得缺少空格,还缺少单引号(')吧,UPDTAE learning SET USERID='"+f3.txtRESOUCEID.Text.Trim()+"' WHERE
string strSQL=@" UPDTAE learning SET USERID='"+f3.txtRESOUCEID.Text.Trim()+"' WHERE RESOUCEID= '" + MName+"'
自己定义一个类,设置一个字段保存你传过来的TextBox值
string strSQL=@" UPDTAE learning SET USERID='"+f3.txtRESOUCEID.Text.Trim()+"' WHERE RESOUCEID= '" + MName+"'
}你最好跟一下为什么界面没有传值过来!
如果USERID为字符类型,后面的内容就要引号引起来。