【发布时间】:2013-07-22 15:49:20
【问题描述】:
我正在尝试从 Access 数据库的两个不同表中获取匹配值。我想知道是否有可能从单元格以“SN”开头的列中获取值,并保留所有其余数据。这是我目前所拥有的。
String filePath = textBox1.Text;
con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath);
con3 = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath);
if ((string)comboBox1.SelectedItem == "CGA0112")
{
try
{
string end = "ENDDATE";
string qual = "CGA0112";
string start = "START";
ad.SelectCommand = new OleDbCommand("SELECT* FROM [AC_ECONOMIC] Where KEYWORD = '" + end + "'AND QUALIFIER = '" + qual + "' AND EXPRESSION = '", con); // ISSUE AFTER EXPRESSION=
ds.Clear();
ad.Fill(ds);
con.Open();
ad.SelectCommand.ExecuteNonQuery();
con.Close();
ad3.SelectCommand = new OleDbCommand("SELECT* FROM [AC_ECONOMIC] Where KEYWORD = '" + start + "'AND QUALIFIER = '" + qual + "'", con3);
ds3.Clear();
ad3.Fill(ds3);
ds.Merge(ds3); //merges the two datasets together
win1.frm1 = this;
win1.Show();
con3.Open();
ad3.SelectCommand.ExecuteNonQuery();
con3.Close();
}
我想我只是想在 EXPRESSION 区域之后添加一些代码,但我不太确定从哪里开始。我只是想让它读起来像 AND EXPRESSION = startswith("SN")。任何帮助将不胜感激。
【问题讨论】:
-
不是我想提出一种全新的思维方式,而是你听说过EntityFramework吗?
-
@gunr2171 其实我没有
-
AND EXPRESSION LIKE 'SN%'(可能是*而不是%- 不记得了)(你也可以重复使用单个连接...) -
并不是说这真的能很快解决你的问题,但我建议你看看它。它在大约 1 行中解决了您的问题,并消除了 SQL 注入(您的代码很容易出现这种情况)。
-
你想使用子字符串我想只搜索前 2 个字母