我有几天的时间来解决我的问题,但我做不到。运行以下代码时:
OleDbConnection MyconnectionBDD = null;
MyconnectionBDD = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + bdd.Text);
//MyconnectionBDD = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + bdd.Text);
MyconnectionBDD.Open();
OleDbCommand cmdBDD = MyconnectionBDD.CreateCommand();
OleDbDataReader dbReaderBDD = null;
string queryBDD;
queryBDD = "SELECT MAX(Clientes.Codigo) AS CodEmp FROM Clientes WHERE Clientes.Codigo LIKE '" + int.Parse(dbReaderExcel.GetValue(0).ToString().Substring(3, 2)) + "*'";
//queryBDD = "SELECT MAX(Clientes.Codigo) FROM Clientes WHERE Codigo LIKE '17*'";
cmdBDD.CommandText = queryBDD;
cmdBDD.CommandType = CommandType.Text;
dbReaderBDD = cmdBDD.ExecuteReader();
if (dbReaderBDD.HasRows)
{
dbReaderBDD.Read();
//string codEmp = dbReaderBDD.GetString(0); //GetValue(0).ToString();
MessageBox.Show(dbReaderBDD["CodEmp"].ToString());
MessageBox.Show(dbReaderBDD.GetValue(0).ToString()); //GetInt64(0).ToString());
//if (dbReaderBDD.GetValue(0).ToString() != "")
if (!String.IsNullOrEmpty(dbReaderBDD.GetValue(0).ToString()))
if (dbReaderBDD.GetValue(0).ToString().Length == 6)
last_codigoCli = int.Parse(dbReaderBDD.GetValue(0).ToString().Substring(1, 5));
else
last_codigoCli = int.Parse(dbReaderBDD.GetValue(0).ToString().Substring(2, 5));
last_codigoCli_Revisado = last_codigoCli;
}
dbReaderBDD.Close();它返回一个空值,但如果在Access中运行查询,它将返回一个正确的值:
SELECT MAX(Clientes.Codigo) AS CodEmp FROM Clientes WHERE Clientes.Codigo LIKE '17*'有人能帮帮我吗?谢谢
发布于 2014-02-20 07:22:09
对不起,查询将是:
queryBDD =“从客户端选择最大( Clientes.Codigo )为CodEmp,其中Clientes.Codigo喜欢'”+Clientes.Codigo 2)+ "%'";
由于*是Access中的通配符,所以我认为查询必须放置一个*但为%
谢谢
https://stackoverflow.com/questions/21877396
复制相似问题