c# - 为什么插入表不起作用?

标签 c# sql-server

<分区>

我想知道为什么这段代码不起作用?

SqlCommand comand = new SqlCommand();
//string myConnectionString = "Data Source=.\SQLEXPRESS;Initial Catalog=try;Integrated Security=True;Pooling=False";
SqlConnection conn = new SqlConnection(@"server=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\mydatabase.mdf;Integrated Security=True;User Instance=True");
comand.Connection = conn;
conn.Open();

comand.CommandText = "INSERT INTO TableProduct (productID,productName) VALUES ('1','M')";

comand.ExecuteNonQuery();
conn.Close();

最佳答案

整个 User Instance 和 AttachDbFileName= 方法是有缺陷的 - 充其量!在 Visual Studio 中运行您的应用程序时,它将复制 .mdf 文件(从您的 App_Data 目录到输出目录 - 通常是 .\bin\debug - 你的应用程序运行的地方)并且很可能,你的INSERT 工作得很好 - 但你只是在看错误的 .mdf 文件 最后!

如果您想坚持使用这种方法,请尝试在 myConnection.Close() 调用上放置一个断点 - 然后使用 SQL Server 检查 .mdf 文件Mgmt Studio Express - 我几乎可以肯定你的数据就在那里。

在我看来真正的解决方案

  1. 安装 SQL Server Express(无论如何您已经完成了)

  2. 安装 SQL Server Management Studio Express

  3. SSMS Express 中创建您的数据库,为其指定一个合乎逻辑的名称(例如 mydatabase)

  4. 使用它的逻辑数据库名称(当您在服务器上创建它时给定的)连接到它 - 不要弄乱物理数据库文件和用户实例。在这种情况下,您的连接字符串将类似于:

    Data Source=.\\SQLEXPRESS;Database=mydatabase;Integrated Security=True
    

    其他一切都完全和以前一样...

关于c# - 为什么插入表不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16628332/

相关文章:

c# - 在 C# 中生成序列号

C# RegEx : Ignore case. .. 模式?

python - Pandas /sqlalchemy/pyodbc : Result object does not return rows from stored proc when UPDATE statement appears before SELECT

c# - 如何使用 Dapper 获取用户定义的 SQLException 编号

sql - 如果用户定义类型为 null 则选择整个表

c# - 如何使 paypal 按钮在 asp.net webform 中工作

c# - 按单词对 C# 列表进行排序

c# - 为什么接受实现私有(private)接口(interface)方法?

SQL 查询在单个列中搜索名字和姓氏的任何变体

sql-server - 查询在 Oracle SQL Developer 中运行很快,但在 SSRS 2008 R2 中运行缓慢