Ali*_*man 2 c# sql-server sql-server-2005
我的表名是Customer.它有四列
CustomerId
CustomerName
CustomerAddress
PhoneNo
Run Code Online (Sandbox Code Playgroud)
这是我的c#代码.我没有得到任何例外,数据没有插入数据库.
string connString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\VictoryDatabase.mdf;Integrated Security=True;User Instance=True";
SqlConnection myConnection = new SqlConnection(connString);
try
{
myConnection.Open();
string query = "insert into Customer(CustomerName,CustomerAddress,PhoneNo) values (@CustNm,'@CustAdd',@Ph)";
SqlCommand myCommand = new SqlCommand(query,myConnection);
myCommand.Parameters.AddWithValue("CustNm",Print[0].CustomerName);
myCommand.Parameters.AddWithValue("CustAdd",Print[0].Address);
myCommand.Parameters.AddWithValue("Ph",Print[0].Telephone);
Console.WriteLine(Print[0].Telephone);
myCommand.ExecuteNonQuery();
myConnection.Close();
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
Run Code Online (Sandbox Code Playgroud)
正如我之前在这个网站上所说的那样 - 整个用户实例和AttachDbFileName =方法都存在缺陷 - 充其量!Visual Studio将在.mdf文件周围复制,很可能,你的INSERT工作很好 - 但你最后只是查看错误的.mdf文件!
如果你想坚持这种方法,那么尝试在myConnection.Close()调用上设置一个断点- 然后.mdf用SQL Server Mgmt Studio Express 检查文件 - 我几乎可以肯定你的数据就在那里.
在真正的解决办法在我看来,将
安装SQL Server Express(你已经完成了)
安装SQL Server Management Studio Express
在SSMS Express中创建数据库,给它一个逻辑名称(例如VictoryDatabase)
使用其逻辑数据库名称(在服务器上创建时给定)连接到它- 并且不要乱用物理数据库文件和用户实例.在这种情况下,您的连接字符串将类似于:
Data Source=.\\SQLEXPRESS;Database=VictoryDatabase;Integrated Security=True
Run Code Online (Sandbox Code Playgroud)
其他一切都和以前完全一样......
| 归档时间: |
|
| 查看次数: |
2324 次 |
| 最近记录: |