我正在尝试将数据插入到我拥有的名为EmployeeInfo的数据库中
提示用户输入姓氏并选择部门ID(显示给用户作为营销或开发)列ID自动递增。
这是我背后的代码
protected void SubmitEmployee_Click(object sender, EventArgs e)
{
var submittedEmployeeName = TextBox1.Text;
var submittedDepartment = selectEmployeeDepartment.Text;
if (submittedEmployeeName == "")
{
nameError.Text = "*Last name cannot be blank";
}
else
{
System.Data.SqlClient.SqlConnection sqlConnection1 =
new System.Data.SqlClient.SqlConnection("ConnString");
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = "INSERT INTO EmployeeInfo (LastName, DepartmentID ) VALUES ('" + submittedEmployeeName + "', " + submittedDepartment + ")";
cmd.Connection = sqlConnection1;
sqlConnection1.Open();
cmd.ExecuteNonQuery();
sqlConnection1.Close();
}
}
我收到的错误是'争议异常未被用户代码处理'
这是一张照片。
根据要求。更多细节
答案 0 :(得分:1)
如果我有足够的声誉,我宁愿将其作为回复发布,但它实际上可能是解决方案。
它停止的原因是因为你没有提供合法的SqlConnection,因为你的输入是:“ConnString”,它只是那个文本。
连接字符串应如下所示:
const string MyConnectionString = "SERVER=localhost;DATABASE=DbName;UID=userID;PWD=userPW;"
在你的情况下最终会像:
System.Data.SqlClient.SqlConnection sqlConnection1 = new System.Data.SqlClient.SqlConnection(MyConnectionString);
除此之外,您应该建立如下连接:
使用(SqlConnection con = new SqlConnection(MyConnectionString)){
using (SqlCommand cmd = new SqlCommand()) { cmd.CommandText = xxxxxx; // Your query to the database cmd.Connection = con; cmd.Connection.Open(); cmd.ExecuteNonQuery(); }
}
这将为您完成关闭,它也使您更容易嵌套连接。我最近做了一个项目并按照你的方式进行连接,当我想在一个函数中执行多个执行时,最终无法正常工作。为每个执行创建一个新命令非常重要。