【问题标题】:C# Can't modify a databaseC#不能修改数据库
【发布时间】:2015-10-28 18:23:44
【问题描述】:

我目前正在尝试使用 C# 程序修改本地数据库。我按照这个例子:https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqltransaction.commit.aspx

问题是在程序运行的时候修改了(比如我增加了一行,我的程序里会看到),但是当我停止程序检查数据库的时候,有没有任何变化 - 数据库与执行前完全相同。

我已经解决这个问题好几天了,还没有找到解决方案。

这是我的作品的摘录:

SqlConnection connectionLocale = new SqlConnection("Data Source=(LocalDB)\\v11.0;AttachDbFilename=|DataDirectory|LocalDB.mdf;Integrated Security=True");

SqlCommand command2 = connectionLocale.CreateCommand();
SqlTransaction transaction;

connectionLocale.Open();
transaction = connectionLocale.BeginTransaction();

command2.Connection = connectionLocale;
command2.Transaction = transaction;

try
{
    command2.CommandText = "DELETE FROM Chercheur";
    command2.ExecuteNonQuery();
    transaction.Commit();
    Console.WriteLine("commit ok");
}
catch
{
    transaction.Rollback();
}

connectionLocale.Close();

我正在使用带有 .mdf 数据库的 Visual Vtudio 2012。

经过一些研究,我在某处看到连接 (AttachDbFilename=|DataDirectory|LocalDB.mdf) 创建了一个临时数据库,并且所有更改都在这个临时数据库上完成。

如何影响原始数据库而不是这个临时数据库?

【问题讨论】:

标签: c# database commit


【解决方案1】:

要保持更改,您需要将数据库放在真正的 SQL Server 上,并将连接字符串更改为:Server=someServerName; Database=someDatabaseName; Trusted_Connection=trueServer=someServerName; Database=someDatabaseName; User ID=someSqlUser; Password=somePassword

【讨论】:

    【解决方案2】:

    您的连接字符串指向本地数据库。您的连接字符串 -

    "Data Source=(LocalDB)\\v11.0;AttachDbFilename=|DataDirectory|LocalDB.mdf;Integrated Security=True"
    

    必须更改为指向您的实际数据库。

    查看here 以了解生成连接字符串的过程。 您也可以参考connectionstring.com 获取示例连接字符串。

    【讨论】:

      【解决方案3】:

      您需要将连接字符串指向正确的实例(“原始数据库”):

      SqlConnection connectionLocale = new SqlConnection("Data Source = YourInstanceName; initial catalog = YourDatabaseName; Integrated Security=True");
      

      替换以下值:

      YourInstanceName - 数据库所在的 SQL Server 实例的名称(可以在连接到 SQL 实例时从 select @@servername; 获取)

      YourDatabaseName - 要修改数据的数据库的名称

      连接字符串告诉提供者在哪里定位您的查询。如果您没有指向正确的目标 SQL Server 实例(和数据库),那么您将得到您遇到的不良结果。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-22
        • 1970-01-01
        • 1970-01-01
        • 2021-11-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多