当前位置:编程学习 > C#/ASP.NET >>

把数据库从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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,