我有一个SQL Server .MDF
数据库文件,其中包含我需要加载到项目中的数据和表,并添加或更新该数据,以便在我附加文件并在第二台PC上运行我的程序时SQL Server已经安装,我收到错误,找不到数据库!
注意:数据库是在SQL Server 2012本地主机服务器和Windows身份验证模式下创建的。
我正在使用此代码加载和使用数据库:
SqlConnection c = new SqlConnection(@"Data Source=.;Initial Catalog=db1;Integrated Security=True");
private void Form1_Load(object sender, EventArgs e)
{
String str;
SqlConnection myConn = new SqlConnection(@"Data Source=.;Initial Catalog=db1;Integrated Security=True");
str = "CREATE DATABASE db1";
SqlCommand myCommand = new SqlCommand(str, myConn);
try
{
myConn.Open();
myCommand.ExecuteNonQuery();
MessageBox.Show("First db is Created", "MyProgram", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (System.Exception ex)
{
// MessageBox.Show("DB is exist");
}
finally
{
if (myConn.State == ConnectionState.Open)
{
myConn.Close();
}
}
using (SqlConnection con = new SqlConnection(@"Data Source=.;Initial Catalog=db1;Integrated Security=True"))
{
try
{
//Open.the SqlConnection;
con.Open();
//The following code uses a SqlCommand based on the SqlConnection
using (SqlCommand command = new SqlCommand("CREATE TABLE contents(id int IDENTITY(100, 1),Name char(50) NOT NULL,Lastname char(50) NOT NULL,Number char(50) ,Area nvarchar(50) ,Date nvarchar(50)NULL,Duration nvarchar(MAX),description nvarchar(MAX),gender nvarchar(50),number2 nvarchar(50),DT datetime NULL);", con))
command.ExecuteNonQuery();
}
catch (Exception ex)
{
//MessageBox.Show("Tables created");
}
}
}
加载表
private void button4_Click(object sender, EventArgs e)
{
SqlDataAdapter a = new SqlDataAdapter("select * from contents", c);
DataTable t = new DataTable();
a.Fill(t);
dataGridView1.DataSource = t;
dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.RowCount - 1;
dataGridView1.AutoResizeColumns();
}
但它不是非常独特和有用的数据库将每天移动到另一台PC并且它必须完美加载我也有一些SQL文件中的表是静态的,他们不需要为它们编码,我想只是用它们作为资源。我还听说过一些方法,嵌入式或本地数据库可以在app数据文件夹中用作db,并且可以明智地使用app移动,所以我需要一些帮助。感谢
答案 0 :(得分:1)
而不是每次都创建一个原始数据库,你可以使用你的mdf文件作为源代码,如下面的
Create database dbname
On
(
Filename= 'path where you copied mdf file'
)
For attach;