无法将sql数据导入文本框

时间:2015-01-29 18:25:55

标签: c# sql database

我试图将三列一列显示到三个不同的文本框,但到目前为止还无法弄清楚为什么这三列仍然是空白的。

    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

1 个答案:

答案 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属性。