|
楼主 |
发表于 2013-7-12 17:19:01
|
显示全部楼层
解决代码如下:
便于大家查阅
苏大的方案:- AccessHelper mydb = new AccessHelper(@"G:\test.mdb");
- DataTable table = mydb.ReturnDataTable(@"select * from TD_DQDM");
- //生成一个新表用来存储数据
- DataTable new_dt = new DataTable();
- //添加列,如果有多个可以在这里添加
- new_dt.Columns.Add("DQDM", Type.GetType("System.String"));
- new_dt.Columns.Add("DQMC", Type.GetType("System.String"));
- //循环处理数据
- foreach (DataRow row in table.Rows)
- {
- string str = Encoding.Default.GetString((byte[])row["DQDM"]).Replace("\0", "");
- //将转化后的数据存储到新表中
- new_dt.Rows.Add(str, row[1]);
- }
- table = null;
- //把新生成的表绑定到表格
- dataGridView1.DataSource = new_dt;
复制代码 ----------------------
其他朋友给的方案
[code=csharp]cessHelper mydb = new AccessHelper(@"G:\test.mdb");
//如果直接做关联的话就不需要读取单个DQDMid
DataSet ds = mydb.ReturnDataSet(@"select ksh,xm,dqmc from t_tdd left join TD_DQDM on t_tdd.DQDM=TD_DQDM.DQDM");
//注释代码为单个读取DQDMid
//DataTable table = mydb.ReturnDataTable(@"select * from TD_DQDM");
//for (int i = 0; i < table.Rows.Count; i++)
//{
// DataRow row = table.Rows;
// byte[] bytes = (byte[])table.Rows["DQDM"];
// string addname = "";
// string name = Encoding.Default.GetString(bytes);
// string[] bytelist = System.Text.RegularExpressions.Regex.Split(name, "\0");
// for (int j = 0; j < bytelist.Length; j++)
// {
// if (bytelist[j] != "")
// {
// addname = addname + int.Parse(bytelist[j]);
// }
// }
// MessageBox.Show(addname);
//}
dataGridView1.DataSource = ds.Tables[0]; [/code] |
|