从C#程序插入时,SQL数据库没有得到更新

时间:2014-06-11 21:54:38

标签: c# sql sql-server database

我是C#和数据库的新手。我使用CreateConnection()方法连接到我的本地数据库服务器。我试图将数据插入数据库表。当我使用select查询从SQL Server Management Studio读取此数据时,我无法从表中获取数据。但是,当我从C#程序执行sql查询时,我能够读取这些数据。我怀疑我的C#程序正在访问的表和SQL Server Management Studio中创建的表是不一样的,即使它们具有相同的路径和相同的名称。

CreateConnection的代码:

    public void CreateConnection()
    {
        Console.WriteLine("CreateConnection");

        myConnection = new SqlConnection("Data Source=(local); Database=MyServerDB;Server=ATLW732FV000169\\SQLEXPRESS;Integrated Security=True; connection timeout=30");
        {
            try
            {
                myConnection.Open();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }
    }

SQL查询代码:

primary_cmd = "INSERT INTO flightData (flightNum, Country) VALUES ('555','xyz');"

using (SqlCommand myCommand = new SqlCommand(primary_cmd, myConnection))
{
    try
    {
        int rows = myCommand.ExecuteNonQuery();                                        
    }
    catch (SqlException e)
    {
        Console.WriteLine(e);
    }
} 

将数据插入数据库时​​,我没有遇到任何异常。当我在SQL Server Management Studio中运行相同的插入查询时,它工作正常并在表中插入数据。另外,我能够从C#程序的表中读取插入的数据。看起来C#连接到一些临时数据库表并插入其中。

2 个答案:

答案 0 :(得分:1)

听起来你的连接字符串是错误的,因为它没有建立你期望的连接。其他一切似乎都是对的。我不认为我曾经在相同的连接字符串中看到过DataSource =(local)和Server = ....也许尝试类似的事情:

new SQLConnection("Persist Security Info=False;Integrated Security=true;Initial Catalog=MyServerDB;server=(local)")

或者:

new SQLConnection("SERVER=ATLW732FV000169\\SQLEXPRESS;Trusted_Connection=Yes;DATABASE=MyServerDB")

答案 1 :(得分:0)

数据库中的隐式事务可能已关闭。在这种情况下,您需要通过激活另一个命令来提交事务:

COMMIT TRANSACTION