我已经在这个基本表格上工作了一段时间,并且遇到了我最新的绊脚石。
到目前为止的工作原理如下:在文本框中输入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对“检索”按钮进行编码,然后将在第一个图片框下方的第二个图片框中显示所选图像,但我认为最好是保留一个单独的问题!
答案 0 :(得分:1)
尝试SqlCeDataAdapter
和SqlCeCommand
代替SqlDataAdapter
和SqlCommand
答案 1 :(得分:0)
我有同样的问题(关于刷新)。我找到了一种方法,不是很好但是有效。 简单地
public ButtonSave_Click(...)
{
Connection();
Application.Restart();
}
这对我来说已经足够了,但我不知道它会对你有所帮助......
答案 2 :(得分: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();
}
}