繁体   English   中英

将数据从 C# 写入 MDF 数据库

[英]Writing data from C# to a MDF database

我有一段 C# 代码,它侦听鼠标向上事件,然后将数据写入数据库。 我在应用程序中的 Visual Studio 中本地创建了一个.MDF数据库文件。 我为此使用以下代码。

问题是当我安装应用程序后在 SQL Server Management Studio 中打开.MDF数据库文件时,我看不到任何数据行。 我可以看到我创建的列但没有数据。 Visual Studio 中服务器资源管理器中的“服务器”似乎是我的笔记本电脑编号:

private void MouseUpEvent(object sender, KeyEventArgs e)
{
    MousePressed = e.KeyCode.ToString();
    int Counting = MousePressed.Split('/').Length - 1;
    long TimePressed = _MousePressed_Length;
    String DateToday = SQLDate;
    String TimeToday = SQLTime;
    float TimeNow = SQLTimeExactmilliseconds;
    var guid = Guid.NewGuid().ToString();
    var guid2 = guid + TimeNow;

    string sqlCon = @"Data Source=.\SQLEXPRESS;" +
               @"AttachDbFilename=|DataDirectory|\Database1.mdf;
                Integrated Security=True;
                Connect Timeout=30;
                User Instance=True";

    using (var db = new SqlConnection(sqlCon))
    {
        db.Open();

        var command = new SqlCommand("INSERT INTO Database1 (Table) VALUES (@Date);", db);
        command.Parameters.AddWithValue("@Date", DateToday);
        var command2 = new SqlCommand("INSERT INTO Database1 (Table) VALUES (@Time);", db);
        command2.Parameters.AddWithValue("@Time", TimeToday);
        var command3 = new SqlCommand("INSERT INTO Database1 (Table) VALUES (@Mousepress);", db);
        command3.Parameters.AddWithValue("@Mousepress", TimePressed);
        var command5 = new SqlCommand("INSERT INTO Database1 (Table) VALUES (@TimeExact);", db);
        command5.Parameters.AddWithValue("@TimeExact", TimeNow);
        var command6 = new SqlCommand("INSERT INTO Database1 (Table) VALUES (@Id);", db);
        command6.Parameters.AddWithValue("@Id", guid2);

        command.ExecuteNonQuery();
        command2.ExecuteNonQuery();
        command3.ExecuteNonQuery();
        command5.ExecuteNonQuery();
        command6.ExecuteNonQuery();

        db.Close();
    }
}

当我尝试在服务器资源管理器中打开.MDF数据库文件时,我从 Visual Studio 收到此消息:

数据库 'C:\\Program Files (x86)\\muhammadADIbrahim@outlook.com\\Setup_Attention_Assist\\Database1.mdf' 已经存在。 选择不同的数据库名称。
尝试为文件 C:\\Users\\muham\\OneDrive\\Desktop\\Attention_Residue\\BAAB UL WORK\\NIZAM\\CURRENT SOFTWARE\\NizamSolutionBackup2.6\\Nizam.Monitor\\Database1.mdf 附加自动命名的数据库失败。 存在同名数据库,或无法打开指定文件,或位于 UNC 共享上。

代码编译并正常工作,所以我猜这只是与数据库的连接有关。

应该发生的情况是,当用户在本地安装应用程序并将数据写入数据库时​​, .mdf数据与 .msi 文件一起安装。 对于任何用户,我应该能够获取本地.mdf文件并在 SQL Server Management Studio 中打开它并查看结果。

谢谢,易卜拉欣

mdf数据库的问题是需要安装SQLSever。

mySql 的问题是类似的。 SQLLite 似乎也不适合我。

我最终为此创建了一个 .txt 文件,现在似乎工作正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM