昨天用GotDotNet.ApplicationBlocks.Data做的.以为是GotDotNet.ApplicationBlocks.Data封装有BUG.所以我现在直接用OleDB做了类似操作.
代码如下
其中数据库MusicList大约3.5w条左右.string sqlcmd = @"SELECT MusicList.MusicName, MusicList.Singer, MusicList.Wma, SClass.SClass
FROM MusicList INNER JOIN SClass ON MusicList.SClassID = SClass.SClassid
WHERE (((MusicList.MusicName) Like '%"+textBox1.Text+"%') OR ((MusicList.Singer) Like '%"+textBox1.Text+"%'))";
OleDbConnection conn=new OleDbConnection(GetConnectionString());
OleDbCommand cmd = new OleDbCommand(sqlcmd,conn);
OleDbDataAdapter objAdapter = new OleDbDataAdapter(cmd);
DataSet objDataSet = new DataSet();
objAdapter.Fill(objDataSet,"SongList");
DataView objDataView = new DataView(objDataSet.Tables["SongList"]);
dataGrid1.DataSource = objDataView;
得到的却是一个异常.是什么数据溢出异常.然后我吧MusicList数据减少到很少的数量.以证明到底是数据溢出还是我的查询语句有问题.结果我吧数据减少到几百条.在做试验.一切就正常了.可是我觉得这可能不是access限制吧?因为这个数据库在一个asp程序中可以做模糊查询.难道是.net的限制或者BUG?还是我那里出错了?
有什么解决办法?总不能让我吧数据导到SQL上吧?只不过一个小工具.用Sql就难免..
代码如下
其中数据库MusicList大约3.5w条左右.string sqlcmd = @"SELECT MusicList.MusicName, MusicList.Singer, MusicList.Wma, SClass.SClass
FROM MusicList INNER JOIN SClass ON MusicList.SClassID = SClass.SClassid
WHERE (((MusicList.MusicName) Like '%"+textBox1.Text+"%') OR ((MusicList.Singer) Like '%"+textBox1.Text+"%'))";
OleDbConnection conn=new OleDbConnection(GetConnectionString());
OleDbCommand cmd = new OleDbCommand(sqlcmd,conn);
OleDbDataAdapter objAdapter = new OleDbDataAdapter(cmd);
DataSet objDataSet = new DataSet();
objAdapter.Fill(objDataSet,"SongList");
DataView objDataView = new DataView(objDataSet.Tables["SongList"]);
dataGrid1.DataSource = objDataView;
得到的却是一个异常.是什么数据溢出异常.然后我吧MusicList数据减少到很少的数量.以证明到底是数据溢出还是我的查询语句有问题.结果我吧数据减少到几百条.在做试验.一切就正常了.可是我觉得这可能不是access限制吧?因为这个数据库在一个asp程序中可以做模糊查询.难道是.net的限制或者BUG?还是我那里出错了?
有什么解决办法?总不能让我吧数据导到SQL上吧?只不过一个小工具.用Sql就难免..
我一直用。
ACCESS不太喜欢。
我一直用。
ACCESS不太喜欢。
是的Fill异常了.
另ACCESS 哪个版本?
*---------------------------------
你做过实验么? 你所说的大量数据是多少 还请指教
我用ACCESS2003做了个实验在两个表中用JOIN INNER 一个表是50 万数据另一个是80多万的数据
在VB6中直接做查询SELECT * 也没出过什么问题文件大小是180MB左右