#sql-server #database #readonly
#sql-сервер #База данных #только для чтения
Вопрос:
кто-нибудь может мне помочь.
Я попытался переместить файл 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. Я бы прикрепил файл MDF к SQL Server Express, который запущен на вашем компьютере, и прекратил бы использовать
AttachDbFileName=....;UserInstance=....
материал. После того, как вы подключили его, вы можете подключиться к нему с помощьюserver=.SQLExpress;database=MyWorkers;integrated security=SSPI;
, и это все, что вам нужно
Ответ №1:
Согласно вашему коду (в строке подключения) файл mdf должен находиться в
C:UsersrebdogAppDataMyWorkers.mdf
Соединение настроено на использование встроенной безопасности, что означает, что для доступа к этой базе данных используется ваш логин Windows. Итак, если у вас возникли проблемы с доступом к базе данных, это может быть связано с тем, что для этого требуется другая учетная запись пользователя или потому, что у вашего пользователя нет доступа на чтение / запись к этой папке.
Комментарии:
1. — это специальный символ, поэтому, если я помещу C:UsersrebdogAppDataMyWorkers.mdf я получаю ошибки. Я проверил предварительные версии, и все они способны читать и записывать.
2. если вы поместите » в строку подключения, вы должны экранировать его, чтобы каждый из них был ‘\’, что означает, что путь в строке подключения будет «C:\Users\rebdog\AppData\MyWorkers.mdf »
3. Ну, по какой-то причине он только начал работать так, как сейчас. Должен любить Windows 7