Visual Studio 2010忽略所有查询错误?

时间:2013-04-20 10:23:26

标签: c# asp.net sql-server

我使用的是Visual Studio 2010和ASP.net c#语言。 我尝试从excel表读取然后将信息插入Microsoft SQL数据库,但我发现它忽略了查询语句中的错误。

for (int i = 0; i < objdatasetdto.Tables[0].Rows.Count; i++)
{
  start_time = Convert.ToDateTime(objdatasetdto.Tables[0].Rows[i]["start"].ToString());
  end_time = Convert.ToDateTime(objdatasetdto.Tables[0].Rows[i]["end"].ToString());
  if (objdatasetdto.Tables[0].Rows[i]["Lecture_day"].ToString().Equals("1"))
  {
     try
     {
        query = "Insert into [M].[Lecture]([dd],[start_time],[end_time],[week_no],[sec_no],
                 [room_no],[building_no]) "+
                 values('" + Calendar1.SelectedDate.ToShortDateString() + "','" +
                 start_time.ToShortTimeString() + "','" + end_time.ToShortTimeString() + 
                 "','1','" + objdatasetdto.Tables[0].Rows[i]["section_no"].ToString() + "','" 
                 + objdatasetdto.Tables[0].Rows[i]["room_no"].ToString() + "','" 
                 + objdatasetdto.Tables[0].Rows[i]["building_no"].ToString() + "');";
        ifexist = new SqlCommand(query, cnn);
      }
      catch (Exception ex)
      {
         Response.Write(ex);
      }
    }//end if
 }// end for loop

我写了[dd]列而不是[date]来测试它是否检测到错误。但它完全忽略了它们。

我该如何解决这个问题。

2 个答案:

答案 0 :(得分:2)

您似乎没有执行SqlCommand。尝试添加:

ifexist.ExecuteScalar();

答案 1 :(得分:0)

您执行了查询?
您没有在以下任何一个中写任何内容

  1. ifexist ExecuteScalar();。
  2. ifexist ExecuteNonQuery();。
  3. 如果您不执行,则查询如何编译查询以及您将如何预期错误。