把数据库从sqlserver转成access后,出现了很多问题.
把数据库从sqlserver转成access后,出现了很多问题.这里是我的数据处理类:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Data.OleDb;
/// <summary>
/// DBcon 的摘要说明
/// </summary>
public class DBcon
{
//SqlConnection con = null;
OleDbConnection con = null;
public DBcon()
{
}
public void getCon()
{
//改为Access
//con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=e:\\hawei/hawei.mdb");
con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+HttpContext.Current.Request.MapPath("~")+"\\hawei.mdb");
//con = new SqlConnection("server=localhost;database=hawei;uid=sa;pwd=");
//HttpContext.Current.Request.MapPath("~")+"hawei.mdb";
}
public void closeCon()
{
if (con.State == ConnectionState.Open)
{
con.Close();
}
}
public DataTable select(string sql)
{
this.getCon();
DataSet ds = new DataSet();
OleDbDataAdapter sda = new OleDbDataAdapter(sql,con);
//SqlDataAdapter sda = new SqlDataAdapter(sql, con);
sda.Fill(ds);
return ds.Tables[0];
}
public int excute(string sql)
{
this.getCon();
con.Open();
OleDbCommand scmd = new OleDbCommand(sql,con);
//SqlCommand scmd = new SqlCommand(sql, con);
int x = scmd.ExecuteNonQuery();
this.closeCon();
return x;
}
public DataTable select()
{
throw new Exception("The method or operation is not implemented.");
}
}
现在在修改/删除/添加的时候,也就是调用execute方法时
报错误:标准表达式中数据类型不匹配。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.OleDb.OleDbException: 标准表达式中数据类型不匹配。
源错误:
行 54: OleDbCommand scmd = new OleDbCommand(sql,con);
行 55: //SqlCommand scmd = new SqlCommand(sql, con);
行 56: int x = scmd.ExecuteNonQuery();
行 57: this.closeCon();
行 58: return x;
查询时有时候会报错误:
标准表达式中数据类型不匹配。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.OleDb.OleDbException: 标准表达式中数据类型不匹配。
源错误:
行 43: OleDbDataAdapter sda = new OleDbDataAdapter(sql,con);
行 44: //SqlDataAdapter sda = new SqlDataAdapter(sql, con);
行 45: sda.Fill(ds);
行 46: return ds.Tables[0];
行 47: }
请帮忙看看 --------------------编程问答-------------------- 很多语句和参数略有差别的,设置上调试跟踪,对每一条出错的语句修改一下吧。
另外观注一下数据库中对于CHAR字符格式的定义,印象中在ACCESS中好象是TEXT? --------------------编程问答-------------------- 标准表达式中数据类型不匹配
很明显就是欠的SQL语句有问题啊,你可以把你的SQL语句贴出来看一下,但是可以肯定的是,
是人的SQL语句出了问题,嘿嘿~
补充:.NET技术 , ASP.NET