~~~~~~~~~同一张数据表,生成两个datable时出现的问题,不吝赐教~~~~~~~~~~

gandalf11 2017-09-13 02:59:07
数据库中有表:tab1,表中有若干字段,其中有一字段名为SuiJiShu
代码块1:查询符合条件的记录,并在数据集中建立一个表tab1
string Sql = "select * from tab1 where UserID=123456" ;
GlobalClass.selectData(Sql, "tab1");
//selectData方法功能就是常规的数据集、数据表的生成sda.Fill(ds, dtName); dt= ds.Tables[dtName];

GlobalClass.tab1= GlobalClass.ds.Tables["tab1"];

代码块2:查找所有SuiJiShu地段,放入到List中

List<string> CunZaiSjs = new List<string>();
DataTable sjsTab = new DataTable();
string Sql = "select SuiJiShu from tab1"; //查询字符串
sjsTab = GlobalClass.selectData(Sql, "sjsTab");
//selectData方法功能就是常规的数据集、数据表的生成sda.Fill(ds, dtName); dt= ds.Tables[dtName];

代码块3:插入数据到数据库中
bookClass bk = new bookClass();
bk.Name = "asdfasdf";
bk.SuiJiShu = 3156482
bk.UserID = 5
GlobalClass.insertData(GlobalClass.tab1, bj); //insertData方法功能就是插入实体数据到指定的数据表中。
那么问题来了?
数据表中只会插入SuiJiShu字段的数据,这是为何?但是当我把加粗部分代码:select SuiJiShu from tab1改为select * from tab1时那么数据就会完整的插入?我明明修改的是tab1表,可为何插入语句对sjsTab起了作用?

...全文
185 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gandalf11 2017-09-14
  • 打赏
  • 举报
回复
如果我把代码块1和代码块2的先后顺序调换一下,那么就能全部插入到数据表中。Why?
引用 6 楼 duanzi_peng 的回复:
bookClass bk = new bookClass(); bk.Name = "asdfasdf"; bk.SuiJiShu = 3156482 bk.UserID = 5 GlobalClass.insertData(GlobalClass.tab1, bj); bk与bj 是什么关系?
打错字了,把bj改成bk
exception92 2017-09-13
  • 打赏
  • 举报
回复
bookClass bk = new bookClass(); bk.Name = "asdfasdf"; bk.SuiJiShu = 3156482 bk.UserID = 5 GlobalClass.insertData(GlobalClass.tab1, bj); bk与bj 是什么关系?
gandalf11 2017-09-13
  • 打赏
  • 举报
回复
经测试,DataTable selectData(string sql, string dtName)代码没有问题,还是不知道哪里的问题
gandalf11 2017-09-13
  • 打赏
  • 举报
回复
会不会是我这段代码有问题 public static DataTable selectData(string sql, string dtName) { SqlConnection con = connString(); //DataTable dt=null; DataTable dt = new DataTable(); try { sda = new SqlDataAdapter(sql, con); sda.Fill(ds, dtName); dt= ds.Tables[dtName]; con.Close(); Debug.Log(dt.TableName); return dt; } catch (Exception e) { throw new Exception(e.Message); } finally { con.Close(); }
gandalf11 2017-09-13
  • 打赏
  • 举报
回复
可我插入数据库的是这个表:GlobalClass.tab1,而这个表对应的sql语句是:string Sql = "select * from tab1 where UserID=123456" ; 而不是sjsTab表啊 DataTable sjsTab = new DataTable(); string Sql = "select SuiJiShu from tab1"; //查询字符串 GlobalClass.insertData(GlobalClass.tab1, bj);
exception92 2017-09-13
  • 打赏
  • 举报
回复
数据表中只会插入SuiJiShu字段的数据,这是为何 -》因为你只select 一个列的值,而非所有列。 那么 你自己调试程序了么? 能够监测到在debug时,执行sql语句时的各个变量的值么?
gandalf11 2017-09-13
  • 打赏
  • 举报
回复
自顶一下,谢谢!

110,529

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧