将数据添加到数据表C#时出现问题

时间:2013-12-29 18:26:55

标签: c#

我正在开展一个包含数据库的学校项目。 我得到了SQL编程的基础,但我仍然遇到问题。 现在我停留在应该将新数据添加到网格中的代码,但它只是因为某些原因而无法工作..我试图找到解决此问题的方法(正如您从代码中看到的那样),但没有工作.. 这是代码。

private void InsertData()
    {
        string NewCode = GenerateCode();
        string NewLetter = txtNewData.Text;

        try
        {
            Connection.Open();
            string AddData = "INSERT INTO DictionaryTest (BinNumber,Letter) VALUE (@NewCode,@NewLetter)";
            //SqlDataAdapter DataIns = new SqlDataAdapter(AddData, Connection);
            SqlCommand DataAdd = new SqlCommand(AddData, Connection);
            DataAdd.Parameters.AddWithValue("@NewCode", "00" + NewCode);
            DataAdd.Parameters.AddWithValue("@NewLetter", NewLetter);
            //DataAdd.ExecuteNonQuery();
            //Connection.Open();
            //var dt = new DataTable();
            //DataIns.Fill(dt);
            Connection.Close();
        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
        }
    }

我从fucntion GenerateCode()得到的数据还可以, 我试图将它插入文本框中,这是正确的。

2 个答案:

答案 0 :(得分:2)

您需要执行sqlcommand

尝试在结束前添加此内容

DataAdd.ExecuteNonQuery();

但要注意SqlConnection和SqlCommand都实现了IDisposable,所以你应该在它们上面调用.Dispose(或者更好的是使用using语句)。

这往往是我编写SQL查询的方式:

using(SqlConnection connection = new SqlConnection("connection string"))
{
    using(SqlCommand command = new SqlCommand("command",connection);
    {
        //Add params as in your example
        connection.Open();
        command.ExecuteNonQuery(); // Or Execute reader to get results back
        connection.close(); //The using statement will close dispose, which will close the connection so this isn't strictly required.
    }
}

希望有所帮助。

答案 1 :(得分:1)

将值更改为值

INSERT INTO DictionaryTest (BinNumber,Letter) VALUES (@NewCode,@NewLetter)