这里是我的代码为什么它总是捕捉块并且不执行“cmd.ExecuteNonQuery();”
protected void Button2_Click(object sender, EventArgs e)
{
try
{
string constr = @"Data Source=ADMIN\LOCALHOST;Initial Catalog=maha;Integrated Security=True";
using (SqlConnection con = new SqlConnection(constr))
{
if (con.State == ConnectionState.Closed)
{
con.Open();
}
string query = "Insert into [dbo].[student] ([ID],[NAME],[DOB],[GENDER]) Values ('@id','@name','@dob','@gender')";
Label3.Text = "execute";
using (SqlCommand cmd = new SqlCommand(query, con))
{
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@id", TB1.Text);
cmd.Parameters.AddWithValue("@name", TB2.Text);
cmd.Parameters.AddWithValue("@dob", TB3.Text);
cmd.Parameters.AddWithValue("@gender", rm);
cmd.ExecuteNonQuery();
}
}
}
catch (Exception ex)
{
throw new Exception(ex.ToString());
}
}
protected void Button3_Click(object sender, EventArgs e)
{
try
{
string constr = @"Data Source=ADMIN\LOCALHOST;Initial Catalog=maha;Integrated Security=True;";
using (SqlConnection con = new SqlConnection(constr))
{
if (con.State == ConnectionState.Closed)
{
con.Open();
}
string query = "Update [dbo].[student] set [ID][email protected],[NAME][email protected], [DOB][email protected]," +
"[GENDER][email protected] Where [ID][email protected]";
using (SqlCommand cmd = new SqlCommand(query, con))
{
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@id", TB1.Text);
cmd.Parameters.AddWithValue("@name", TB2.Text);
cmd.Parameters.AddWithValue("@dob", TB3.Text);
cmd.Parameters.AddWithValue("@gender", rm);
cmd.ExecuteNonQuery();
}
}
}
catch (Exception ex)
{
throw new Exception(ex.ToString());
}
}
catch块的异常是什么? – Mark
因为它可能会在'con.Open()'或其他地方崩溃?请使用断点并按照说明查看它的崩溃位置和原因。 – Furtiro
实际上,我的错误是在将TB3.Text转换为日期格式时发生的?因为在我的数据库中,dob数据类型是日期。现在我正在使用cmd.Parameters.AddWithValue(“@ dob”,DateTime.Parse(TB3.Text));但他们仍然是一个错误“System.Data.SqlClient.SqlException(0x80131904):转换日期和/或时间从字符串转换失败。” –