2016-08-04 78 views
0

这里是我的代码为什么它总是捕捉块并且不执行“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()); 
    } 
} 
+1

catch块的异常是什么? – Mark

+0

因为它可能会在'con.Open()'或其他地方崩溃?请使用断点并按照说明查看它的崩溃位置和原因。 – Furtiro

+0

实际上,我的错误是在将TB3.Text转换为日期格式时发生的?因为在我的数据库中,dob数据类型是日期。现在我正在使用cmd.Parameters.AddWithValue(“@ dob”,DateTime.Parse(TB3.Text));但他们仍然是一个错误“System.Data.SqlClient.SqlException(0x80131904):转换日期和/或时间从字符串转换失败。” –

回答

0

请参阅此编码。如有疑问请告知我

cmd.Parameters.AddWithValue("@dob", DateTime.Parse(TB3.Text))); 
+0

string sr = TB3.Text; DateTime dt = new DateTime(); dt = DateTime.ParseExact(sr,“yyyy-MM-DD HH:mm:ss”,CultureInfo.InvariantCulture);我也试过你的方法。但它仍然显示相同的错误。 cmd.Parameters.AddWithValue(“@ dob”,dt); –

+0

System.FormatException:字符串未被识别为有效的DateTime.at System.DateTimeParse.ParseExact(String s,字符串格式,DateTimeFormatInfo dtfi,DateTimeStyles样式)此错误即将到来 –

+0

在我的数据库中,dob的数据类型是“date”。在网页表单输入是通过dateTimePicker进行的,并且选择的日期显示在文本框 –

相关问题