C# 这些查询之间有什么区别?
跟随 我还有一个问题: 我在SelectFeedbtn\u click的click事件中回忆起这种方法,它可以工作:C# 这些查询之间有什么区别?,c#,ms-access,C#,Ms Access,跟随 我还有一个问题: 我在SelectFeedbtn\u click的click事件中回忆起这种方法,它可以工作: public static void GetSelectedFeed(Form2 frm2) { string StrCon = System.Configuration.ConfigurationManager.ConnectionStrings["FeedLibraryConnectionString"].ConnectionString;
public static void GetSelectedFeed(Form2 frm2)
{
string StrCon = System.Configuration.ConfigurationManager.ConnectionStrings["FeedLibraryConnectionString"].ConnectionString;
OleDbConnection Connection = new OleDbConnection(StrCon);
OleDbDataAdapter DataA = new OleDbDataAdapter("Select * from FeedLibrary", Connection);
DataTable DTable = new DataTable();
DataA.Fill(DTable);
frm2.SelectedFeeddataGridView.DataSource = DTable;
}
但当我想从FeedSelectListBox获取一个ID时,DisplayMember是Feed Name/Description,ValueMember是ID,它会显示一个exeption:{条件表达式中的数据类型不匹配。},
查询是:
public static void GetSelectedFeed(Form2 frm2)
{
string StrCon = System.Configuration.ConfigurationManager.ConnectionStrings["FeedLibraryConnectionString"].ConnectionString;
OleDbConnection Connection = new OleDbConnection(StrCon);
OleDbDataAdapter DataA = new OleDbDataAdapter("Select * from FeedLibrary where ID = 'frm2.FeedSelectListBox.SelectedValue'", Connection);
DataTable DTable = new DataTable();
DataA.Fill(DTable);
frm2.SelectedFeeddataGridView.DataSource = DTable;
}
我该怎么办?首先,ID是一个int,所以不应该用引号传递它。您正在查询中以字符串形式传递frm2.FeedSelectListBox.SelectedValue,但应在查询中传递其值,以便对其进行计算,并使查询成为可执行的
OleDbDataAdapter DataA = new OleDbDataAdapter("Select * from FeedLibrary where ID = "+frm2.FeedSelectListBox.SelectedValue, Connection);
OleDbDataAdapter DataA = new OleDbDataAdapter("Select * from FeedLibrary where ID = "+FeedSelectedID, Connection);
您是否有错误或只是没有得到任何结果?ID可能是数字。删除它周围的单引号。从FeedLibrary中选择*,其中ID=2表示担忧,但不起作用并不能很好地描述问题。你收到错误信息了吗?崩溃例外根本没有数据?您是否验证了数据库中有一行具有该值的文本id?如果成功,现在如果列表框具有多选属性,那么应该如何编写查询以获取列表框的所有选定值?