我是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#连接到一些临时数据库表并插入其中。
答案 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