[英]how insert new row in sql server using sqlcommandbuilder object
Sql 中有一个名为 Student 的表,其中定义了 4 列。 第一列是由身份自动递增的 ID。 当我尝试在 sql 中插入数据时,出现以下错误:“SqlCommandBuilder 对象上的关键字‘where’附近的语法不正确”
protected void Button1_Click(object sender, EventArgs e)
{
string cs = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
SqlConnection con = new SqlConnection(cs);
string sqlQuery = "insert into Student values where = " + TextStudentID.Text;
SqlDataAdapter da = new SqlDataAdapter(sqlQuery, con);
SqlCommandBuilder builder = new SqlCommandBuilder(da);
DataSet ds = (DataSet)ViewState["dataset"];
SqlCommand cmd = builder.GetInsertCommand();
cmd.Parameters["@StudentName"].Value = TextStudentName.Text;
cmd.Parameters["@Gender"].Value = DropDownList1.SelectedValue;
cmd.Parameters["@Studentmarks"].Value = TextStudentName.Text;
cmd.ExecuteNonQuery();
da.Fill(ds);
}
提前致谢
您的插入语法不正确。 假设您的 ID 是主键(身份),您的插入语句应该是这样的:
string sqlQuery = "insert into Student (StudentName, Gender, Studentmarks) values (@StudentName, @Gender, @Studentmarks)";
ID 将自动插入并与您传递的其他值一起自动递增。
您应该稍微清理一下代码并将 SqlConnection 放入 using 块中,以便正确处理。
using (SqlConnection con = new SqlConnection(cs))
{
// your code
}
https://www.dotnetperls.com/sqldataadapter
如果您打算以这种方式向命令添加参数,则需要使用AddWithValue ,但要注意错误隐式类型转换的可能性。
例子:
cmd.Parameters.AddWithValue("@StudentName", TextStudentName.Text);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.