只读数据库MDF文件。 Windows应用程序

时间:2011-05-17 08:47:18

标签: sql-server database readonly

有人可以帮助我。

我已经尝试将MDF文件移动到不同的位置,但我仍然无法更新数据库。我正在使用Windows 7。

这是我的代码:

using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace TestDatabase
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        System.Data.SqlClient.SqlConnection con;
        DataSet ds1;
        System.Data.SqlClient.SqlDataAdapter da;

        int MaxRows = 0;
        int inc = 0;

        private void Form1_Load(object sender, EventArgs e)
        {
            con = new System.Data.SqlClient.SqlConnection();
            ds1 = new DataSet();
            con.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Users\\rebdog\\AppData\\MyWorkers.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
            con.Open();

            string sql = "SELECT * From tblWorkers";
            da = new System.Data.SqlClient.SqlDataAdapter(sql, con);

            MessageBox.Show("database Open");

            da.Fill(ds1, "Workers");
            NavigateRecords();
            MaxRows = ds1.Tables["Workers"].Rows.Count;

            con.Close();

            MessageBox.Show("database closed");
        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            System.Data.SqlClient.SqlCommandBuilder cb;

            cb = new System.Data.SqlClient.SqlCommandBuilder(da);

            DataRow dRow = ds1.Tables["Workers"].NewRow();

            dRow[1] = textBox1.Text;
            dRow[2] = textBox2.Text;
            dRow[3] = textBox3.Text;

            ds1.Tables["Workers"].Rows.Add(dRow);

            MaxRows = MaxRows + 1;
            inc = MaxRows - 1;

            da.Update(ds1,"Workers");
        }
    }
}

代码来自一个教程,我需要在将数据库添加到项目之前使其工作。

谢谢你们。

1 个答案:

答案 0 :(得分:1)

根据您的代码(在连接字符串中),mdf文件应该在

C:\Users\rebdog\AppData\MyWorkers.mdf

连接设置为使用集成安全性,这意味着它使用您的Windows登录来访问该数据库。因此,如果您在访问数据库时遇到问题,可能是因为它需要另一个用户帐户,或者因为您的用户没有对该文件夹的读/写访问权限。