我试图将三列一列显示到三个不同的文本框,但到目前为止还无法弄清楚为什么这三列仍然是空白的。
public Form1()
{
InitializeComponent();
}
System.Data.SqlClient.SqlConnection con;
DataSet ds1;
System.Data.SqlClient.SqlDataAdapter da;
private void Form1_Load(object sender, EventArgs e)
{
con = new System.Data.SqlClient.SqlConnection();
ds1 = new DataSet();
con.ConnectionString = "Data Source=(LocalDB)\\v11.0;AttachDbFilename=C:\\Users\\Gizzy\\Documents\\Visual Studio 2013\\Projects\\WindowsFormsApplication1\\WindowsFormsApplication1\\Database1.mdf1;Integrated Security=true;Connect Timeout=30";
con.Open();
string sql = "SELECT * From Table";
da = new System.Data.SqlClient.SqlDataAdapter(sql, con);
da.Fill(ds1, "Workers");
NavigateRecords();
con.Close();
}
private void NavigateRecords()
{
DataRow dRow = ds1.Tables["Workers"].Rows[0];
textBox1.Text = dRow.ItemArray.GetValue(1).ToString();
textBox2.Text = dRow.ItemArray.GetValue(2).ToString();
textBox3.Text = dRow.ItemArray.GetValue(3).ToString();
}
在第一次运行之前添加了数据,之后不久更新了数据库以获取此数据:
INSERT INTO [dbo].[Table] ([Worker_ID], [first_Name], [last_Name], [job_Title]) VALUES (1, N'Tomas', N'Gryzbon', N'Programmer')
INSERT INTO [dbo].[Table] ([Worker_ID], [first_Name], [last_Name], [job_Title]) VALUES (2, N'Radim ', N'Gryzbon', N'Manager')
INSERT INTO [dbo].[Table] ([Worker_ID], [first_Name], [last_Name], [job_Title]) VALUES (3, N'Jana', N'Gryzbonova', N'Secretary')
试着从头开始做整个项目,一步一步地告诉你我是如何走到最后的。由于这是我的第一个SQL数据库项目,我很可能会犯一些大错: 新的WinFormProject /添加基于服务的数据库/创建DataSet并将其与刚创建的数据库连接/添加表/创建所有列/更新数据库/刷新表文件夹/显示表数据/填充/配置数据源中的行向导获取表到DataSet /写入所有代码/添加textBoxes / Run / Blank textBoxes
答案 0 :(得分:0)
这看起来不正确:
con.ConnectionString = "Data Source=(LocalDB)\\v11.0;AttachDbFilename=C:\\Users\\Gizzy\\Documents\\Visual Studio 2013\\Projects\\WindowsFormsApplication1\\WindowsFormsApplication1\\Database1.mdf1;Integrated Security=true;Connect Timeout=30";
这将打开Visual Studio源文件夹中的数据库。部署项目时,部署已编译的可执行文件,对吧?不是你的来源?在这种情况下,您应该打开已部署的数据,而不是源。除非您已修改了deployable,否则可以使用以下命令获取已部署数据的路径:
con.ConnectionString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|Database1.mdf1;Integrated Security=true;Connect Timeout=30";
告诉我们数据库的Build Action和Copy To Output Directory属性。