我的函数为:
public string Dlookup(string table, string field, string sWhere)
{
string sSQL = "SELECT " + field + " FROM " + table + " WHERE " + sWhere; OleDbCommand command = new OleDbCommand(sSQL, Connection);
OleDbDataReader reader=command.ExecuteReader(CommandBehavior.SingleRow);
string sReturn; if (reader.Read())
{
sReturn = reader[0].ToString();
if (sReturn == null)
sReturn = "";
}
else
{
sReturn = "";
} reader.Close();
return sReturn;
}在调用这个函数时
articler.Text=Utility.Dlookup("members","name","member_id='"+Session["UserID"].ToString().Trim()+"'").Trim();
总是出错!说System.Data.OleDb.OleDbException: 标准表达式中数据类型不匹配
请问这是怎么回事?
public string Dlookup(string table, string field, string sWhere)
{
string sSQL = "SELECT " + field + " FROM " + table + " WHERE " + sWhere; OleDbCommand command = new OleDbCommand(sSQL, Connection);
OleDbDataReader reader=command.ExecuteReader(CommandBehavior.SingleRow);
string sReturn; if (reader.Read())
{
sReturn = reader[0].ToString();
if (sReturn == null)
sReturn = "";
}
else
{
sReturn = "";
} reader.Close();
return sReturn;
}在调用这个函数时
articler.Text=Utility.Dlookup("members","name","member_id='"+Session["UserID"].ToString().Trim()+"'").Trim();
总是出错!说System.Data.OleDb.OleDbException: 标准表达式中数据类型不匹配
请问这是怎么回事?
另外將表名Name-->[Name]試試〉
OleDbException (0x80040e07): 标准表达式中数据类型不匹配。]
System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr) +41
System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) +174
System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleRow(tagDBPARAMS dbParams, Object& executeResult) +206
System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +107
System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) +65
System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +112
System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior) +69
ArticleBBS.CCUtility.Dlookup(String table, String field, String sWhere) in C:\Inetpub\wwwroot\ArticleBBS\CCUtility.cs:256
ArticleBBS.UserControl.UserLogin.Login_Show() in c:\inetpub\wwwroot\articlebbs\usercontrol\userlogin.ascx.cs:77
ArticleBBS.UserControl.UserLogin.login_Click(Object sender, ImageClickEventArgs e) in c:\inetpub\wwwroot\articlebbs\usercontrol\userlogin.ascx.cs:131
System.Web.UI.WebControls.ImageButton.OnClick(ImageClickEventArgs e) +109
System.Web.UI.WebControls.ImageButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +69
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain() +1277最后我把数据库的字段名改成names却出现了
IErrorInfo.GetDescription 因 E_FAIL(0x80004005) 而失败。
行 255: OleDbCommand command = new OleDbCommand(sSQL, Connection);
行 256: OleDbDataReader reader=command.ExecuteReader(CommandBehavior.SingleRow);
行 257: string sReturn;
行 258:
Announce.Text=Utility.Dlookup("Announce","Announce","id=1").Trim();
就是和
welcome.Text=Utility.Dlookup("[members]","[names]","[member_id]='"+Session["UserID"]+"'").Trim();扯上关系的都不行