4

在此处输入图像描述

我已经研究这种基本形式一段时间了,并且遇到了我最新的绊脚石。到目前为止的工作如下:您在文本框中输入一个 ID,单击加载按钮,选择您的,.jpg然后在顶部的图片框中显示图像(在本例中为摄像机)。

现在解决问题,当您单击Save按钮时,它会调用一个名为updatedata();

我相信这是将图像和 ID 写入我的 SQL Server CE 数据库(我已经在 bin\debug 文件夹中完成了几次,并且 db 的大小已经增长。)该方法还调用了另一个名为的方法Connection();

现在,连接方法的想法是根据已保存到数据库的任何项目填充 ID 组合框,所以基本上每次我添加新图像时,选择列表都应该刷新并可供选择,目前它不是做任何事情,因为我使用的代码最初是为适当的 SQL Server 实例而不是 CE 编写的。我试图重构其中的一些,但是我现在收到以下错误。

在此处输入图像描述

这是我的连接方法的代码:

private void Connection() 
{   
          //connect to the database and table
          //selecting all the columns
          //adding the name column alone to the combobox 

         try 
         {
             string connstr = @"Data Source=.\TestImage.sdf;Persist Security Info=False;"; 

             SqlCeConnection conn = new SqlCeConnection(connstr);  
             conn.Open();
             empadap1 = new SqlDataAdapter();   
             empadap1.SelectCommand = new SqlCommand("SELECT * FROM test_table"
                 , conn); 
             dset = new DataSet("dset");
             empadap1.Fill(dset);   
             DataTable dtable;     
             dtable = dset.Tables[0];
             comboBox1.Items.Clear(); 
             foreach (DataRow drow in dtable.Rows)
             { 
              comboBox1.Items.Add(drow[0].ToString()); 
              comboBox1.SelectedIndex = 0; 
             } 
         }
         catch (Exception ex)
         {
          MessageBox.Show(ex.Message);    
         }   
}

问题
任何人都可以修改我的 Connection() 方法代码来做我想做的事(即使用 SQL Server CE 数据库中找到的所有已保存 ID 更新组合框)或建议一些新代码。

旁注
一旦我的组合框被填充,我将尝试根据所选 ID 对“检索”按钮进行编码,然后将所选图像显示在第一个图片下方的第二个图片框中,但是我认为最好将其单独保留问题!

4

3 回答 3

1

尝试SqlCeDataAdapterandSqlCeCommand而不是SqlDataAdapterandSqlCommand

于 2013-06-12T18:33:33.617 回答
0

我有同样的问题(关于刷新)。我找到了一种方法,虽然不好但有效。简单地

public ButtonSave_Click(...)
{
    Connection();
    Application.Restart();
}

这对我来说已经足够了,但我不知道它对你有没有帮助......

于 2013-06-20T05:55:02.290 回答
0

尝试这个

    private void Connection() 
{   
          //connect to the database and table
          //selecting all the columns
          //adding the name column alone to the combobox 

         try 
         {
             string connstr = @"Data Source=.\TestImage.sdf;Persist Security Info=False;"; 

             SqlCeConnection conn = new SqlCeConnection(connstr);  
             conn.Open();
             SqlCeCommand selectCmd = conn.CreateCommand();
             selectCmd.CommandText = "SELECT * FROM test_table";
             SqlCeDataAdapter adp = new SqlCeDataAdapter(selectCmd);              
             dset = new DataSet("dset");
             adp.Fill(dset);   
             DataTable dtable;     
             dtable = dset.Tables[0];
             if(comboBox1.Items.Count>0)
             {
                comboBox1.Items.Clear(); 
             }
             foreach (DataRow drow in dtable.Rows)
             { 
                comboBox1.Items.Add(drow[0].ToString());                
             } 
             comboBox1.SelectedIndex = 0; 
         }
         catch (Exception ex)
         {
          MessageBox.Show(ex.Message);    
         }   
         finally
         {
            conn.Open();
         }
}
于 2013-06-21T07:24:18.503 回答