0

我正在尝试从 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")。任何帮助将非常感激。

4

1 回答 1

2

你应该使用like如下:

"SELECT * FROM [AC_ECONOMIC] Where KEYWORD = '" + end + 
"' AND QUALIFIER = '" + qual + "' AND EXPRESSION LIKE 'SN*'"

但是,正如评论中提到的那样,我认为您绝对应该研究一个框架,也许像Dapper这样的框架,非常棒。还有一些库扩展了 Dapper 以使其更容易上手,比如这个

编辑:见评论 -'SN%'应该与 OleDb 一起使用,而不是'SN*'

于 2013-07-22T16:01:38.870 回答