报错:查询输入必须至少包含一个表或查询我报错:查询输入必须至少包含一个表或查询我的代码是:使用(OleDbConnectionmyCon=newOleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;DataSource=timetabledata.accdb")){OleDbCommandcmd=newOleDbCommand();cmd.CommandType=CommandType.Text;stringq="INSERTINTOtimehourly(teacherid,subjectid)Values('@teacherID','@subjid')"+"WHEREhour='@i'ANDdayid='@ds'";cmd.Parameters.AddWithValue("@teacherID",Convert.ToInt32(teacher_combo.SelectedValue).ToString());cmd.Parameters.AddWithValue("@subjid",Convert.ToInt32(subject_combo.SelectedValue).ToString());cmd.Parameters.AddWithValue("@i",i.ToString());cmd.Parameters.AddWithValue("@ds",ds.Tables[0].Rows[k].ItemArray[0].ToString());cmd.CommandText=q;命令。连接=我的;myCon.Open();cmd.ExecuteNonQuery();System.Windows.Forms.MessageBox.Show("添加成功","Caption",MessageBoxButtons.OKCancel,MessageBoxIcon.Information);}你需要调用删除注释中的撇号还要验证数据是否存在于传递给查询的值中。在添加参数之前还要分配CommandText。您还可以将OleDbCommand包装在using语句中,因为它实现了IDisposable。然后您尝试执行带有WHERE子句的INSERT,但这是行不通的。INSERT语句实际上将一行“插入”到表中,您不能在已经存在一行的地方插入一行。您正在寻找的是更新-我已经编辑了下面的语法以反映这一点。使用(OleDbConnectionmyCon=newOleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;DataSource=timetabledata.accdb"))使用(OleDbCommandcmd=newOleDbCommand()){cmd.CommandType=CommandType.Text;stringq="UPDATEtimehourlySETteacheridh=@teacherId,SETsubjectidh=@subjidWHEREhour=@iANDdayid=@ds";cmd.CommandText=q;cmd.Parameters.AddWithValue("@teacherID",Convert.ToInt32(teacher_combo.SelectedValue).ToString());cmd.Parameters.AddWithValue("@subjid",Convert.ToInt32(subject_combo.SelectedValue).ToString());cmd.Parameters.AddWithValue("@i",i.ToString());cmd.Parameters.AddWithValue("@ds",ds.Tables[0].Rows[k].ItemArray[0].ToString());cmd.Connection=myCon;myCon.Open();cmd.ExecuteNonQuery();System.Windows.Forms.MessageBox.Show("添加成功","Caption",MessageBoxButtons.OKCancel,MessageBoxIcon.Information);}如果你真的想进入INSERT,那么只需要从你的q字符串中取出WHERE。以上是C#学习教程:获取错误:查询输入必须包含至少一个表或查询共享的所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文来自网络收集,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
