2012-12-24 70 views
0

我正在尝试使用ado.net访问c#并使用c#插入数据。我的计算机中安装了sql server,因此我觉得机器名称将是服务器名称。以下是我用来连接数据库的步骤。如何知道连接是否已经进行

private void dbButton_Click(object sender, EventArgs e) 
    { 
     connectionString = "Server = ITSL-SALT-33; Database = sampleADO; User Id = sa; Password = abcd;"; 
     try 
     { 
      SqlConnection conn = new SqlConnection(connectionString); 
      conn.Open(); 
      MessageBox.Show("Successfully connected to the database."); 
      insertButton.Enabled = true; 
      loadButton.Enabled = true; 

     } 


     catch (Exception exc) 
     { 
      Console.WriteLine(exc.ToString()); 
      MessageBox.Show("Connection attempt failed"); 
     } 
    } 

下面是插入按钮代码:

private void insButton_Click(object sender, EventArgs e) 
    { 
     cmdString="INSERT INTO books (name,author,price) VALUES (@val1, @va2, @val3)"; 

     SqlCommand comm = new SqlCommand(); 

    comm.Connection = conn; 
    comm.CommandText= cmdString; 
    comm.Parameters.AddWithValue("@val1", txtBook.Text); 
    comm.Parameters.AddWithValue("@val2", txtAuthor.Text); 
    comm.Parameters.AddWithValue("@val3", txtPrice.Text); 
    comm.Parameters.AddWithValue("@val3", txtComments.Text); 
    try 
    { 
     MessageBox.Show(conn.DataSource); 
     Console.WriteLine(comm.ExecuteNonQuery()); 
     Console.ReadLine(); 

    } 
    catch(Exception exc) 
    { 
     MessageBox.Show("In Insert catch"); 

    } 
} 

当我试图插入数据时,它总是在MessageBox“在插入抓”显示。我无法理解错在哪里,或者是否有任何步骤丢失。我是使用数据库或sql的新东西,只是想学习如何在.net中与数据库进行交互。请指导。

+0

那么,什么是在消息话题你正在捕捉的异常?不要只输出“In Insert catch”,这是没用的。也输出'exc.Message'。 – Carson63000

+0

您正在捕捉一般例外情况,例外情况。您可能会捕获指定的SqlException并查看错误编号,或者针对当前异常,您可能会查看异常详细信息,它可能不是连接 – Habib

+0

请参阅您的exc变量中的内容。 –

回答

0

我觉得这是一个只是一个小的失误只是改变你@va2INSERT查询@val2,它现在应该工作..

cmdString="INSERT INTO books (name,author,price) VALUES (@val1,@ VA2@val3)";

相关问题