老子不活了,分都用了,没了

chaye12 2008-07-05 04:17:18
问两个问题,1
string source = "pcdb.mdb";
string conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + source;
string sql = "select ryzl.工号,ryzl.姓名, ryzl.养老金 + ryzl.医疗金 + ryzl.失业金 as 三金 from ryzl";
OleDbConnection olecon = new OleDbConnection(conn);
OleDbDataAdapter sda = new OleDbDataAdapter(sql, olecon);
DataSet ds = new DataSet();
sda.Fill(ds, "ryzl");
DataTable dt = new DataTable();
dt = ds.Tables["ryzl"];
string sql1 = "select * from sqxm";
OleDbConnection olecon1 = new OleDbConnection(conn);
OleDbDataAdapter sda1 = new OleDbDataAdapter(sql1, olecon1);
DataSet ds1 = new DataSet();
sda1.Fill(ds1, "sqxm");
DataTable dt1 = ds1.Tables["sqxm"];
foreach (DataRow dr1 in dt1.Rows)
{
dt.Columns.Add(new DataColumn(dr1["money"].ToString()));
我想在这把列的值都还成dr1["price"].ToString()));请问该如何实现呢
}
dataGridView1.DataSource = ds.Tables[0];

2,是我的datagirdview绑定了数据表A,显示在窗体中,我想让它是可编辑状态,可以添加记录,然后点击更新按钮后,
datagirdview自己刷新数据,数据表中的数据要背刷新,请问该如何去做?
...全文
191 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
chaye12 2008-07-07
  • 打赏
  • 举报
回复
好,可以结贴了,
wheeler 2008-07-07
  • 打赏
  • 举报
回复
回复LZ站内消息

1、我用的是ACCESS数据库,如何添加视图呢????
视图在access里面叫"查询"。

2、表现层是不是就是写后台代码的过程呢?
不是。
数据访问层:你写的关于ACCESS访问的部分(这部分仅至DataSet,DataTable之类的为止)。
业务逻辑层:把(包含但不仅限于)DataSet,DataTable之类的折腾来折腾去(包含但不仅限于 组合啊~四则运算啊~比较啊~)的那部分。
表示层:把折腾来折腾去之后的结果输出给用户看 以及 接受用户输入,获得如何折腾数据的信息 的部分(包含但不仅限于 窗体、报表)。
wheeler 2008-07-06
  • 打赏
  • 举报
回复
OMG 伟大的想法。。。。。。

在数据库中建立临时表;这种操作都在内存中进行的话,比较悬乎。

string 建立临时表语句 = @"......(...)";
foreach (...... in dr["money"])
{
建立临时表语句 += @", 生活费交通费之流 int";
}
建立临时表语句 += @")";
//建立临时表。。。
foreach (......)
{
string 填充临时表 = @"insert ...... (ryzl中的值, 生活费交通费之流)";
//执行T-SQL语句。。。
}

==================偶是无敌的分割线==================
当然了,这么牛B的问题,最好是在设计数据库的时候就解决了!说实话,其实现在硬盘很大,这点数据冗余还是可以接受的。
chaye12 2008-07-06
  • 打赏
  • 举报
回复
其实这是张工资汇总表,肯定不能一个表就实现功能,因为各种费用可以添加!
足球中国 2008-07-06
  • 打赏
  • 举报
回复
这么多人帮你还是继续活下去了.
不然我们也没分赚了.
wheeler 2008-07-06
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 chaye12 的回复:]
其实这是张工资汇总表,肯定不能一个表就实现功能,因为各种费用可以添加!
[/Quote]

。。。。。。早说嘛!

不用表,而且这个不应该在表现层解决;应该在数据库内添加视图。
chaye12 2008-07-05
  • 打赏
  • 举报
回复
我再把大体意思说下,datagirdview先绑定ryzl表,
然后再往其后面添加自定义列,列名为dr[“money”],列下面的值全部是dr["price"];
假如表的结构是这样,

ID money price

1 生活费 200
2 交通费 150


那么datagirdview中加的自定义列就为
生活费 交通费

200 150
200 150
200 150
。。。。。。
我想现在该明白了
chaye12 2008-07-05
  • 打赏
  • 举报
回复
不是,我是在后面再加一列,列名为sqxm.money,下面的值全部用sqxm.price填充!
比如money对应的值为生活费,pirce对应的就是200,
也就是说新增一列,为

生活费
200
200
200
200
明白了吗?

chaye12 2008-07-05
  • 打赏
  • 举报
回复
8楼的我就是要实现那个功能,
(这代码是dt1有多少行,你就在dt里增加多少列了)

wheeler 2008-07-05
  • 打赏
  • 举报
回复
首先
dt.Columns.Add(new DataColumn(dr1["money"].ToString()));
我想在这把列的值都还成dr1["price"].ToString()));请问该如何实现呢

你丫到底是要money还是price???

就当你是price了!!!
=============================================================

是不是
ryzl.工号 ryzl.姓名 三金(ryzl.养老金 + ryzl.医疗金 + ryzl.失业金)<--此处用sqxm.price替换?还是后面加一列sqxm.price


//用sqxm.price替换
string sqlstring=@"select ryzl.工号, ryzl.姓名, sqxm.price from ryzl, sqxm";
//=========================================================================
//加一列sqxm.price
string sqlstring=@"select ryzl.工号, ryzl.姓名, ryzl.养老金 + ryzl.医疗金 + ryzl.失业金 as 三金, sqxm.price from ryzl, sqxm";


那些万年不变的代码就不贴了哈!
Nobel0429 2008-07-05
  • 打赏
  • 举报
回复
你2张表的表结构帖出来看看,更新按钮需要更新1张表 还是2张表
表A是不是有个字段 'price' 对应表B 的'money' 如果是这样的话 sql1的那条语句 把 price 也查出来



ygxdsg119 2008-07-05
  • 打赏
  • 举报
回复
lz别激动啊,代码就象女朋友一样,要温柔.
1.这个完全可以用一个sql语句全部取出来,一来可以节省连接数据库的系统开销,二来也不用在对2个表做操作了.
2.我想应该是这样:在GridView的更新事件中要重新绑定.
void Page_Load(Object sender,EventArgs e)
{
bind();
}
void GridView1_RowUpdated(object sender, GridViewUpdatedEventArgs e)
{
//更新
bind();
}
void bind()
{
//
//
//
GridView1.dataSource = ds.Tables[0];//绑定GridView
GridView1.dataBind();
}
当用户初次请求这个页面的时候,执行PageLoad,绑定数据,用户看到一个列表.
当用户编辑好了数据,点击更新时,页面的生命周期是先执行Page_Load,再执行GridView1_RowUpdated.
这个可以调试一下看出来.
所以是先绑定(PageLoad),再更新(RowUpdated).
那么在GridView1_RowUpdated事件中,当更新完数据后让其绑定就可以了.
江城老温 2008-07-05
  • 打赏
  • 举报
回复
问题1:

foreach (DataRow dr1 in dt1.Rows)
{
dt.Columns.Add(new DataColumn(dr1["money"].ToString()));
我想在这把列的值都还成dr1["price"].ToString()));请问该如何实现呢
}
------------------------------------------------------------
这是不对的,这代码是dt1有多少行,你就在dt里增加多少列了。

要达到你的目的,你应该在foreach循环外面给dt增加列,然后在循环里给新增的列赋值。


问题2:
孟子的代码没问题。关键在于OleDbCommandBuilder cb = new OleDbCommandBuilder(da);
这句你既然已经写到代码里了,应该可以实现更新了。
chaye12 2008-07-05
  • 打赏
  • 举报
回复
谁帮我看看代码,靠,孟子大哥都给我写代码了,我还搞不好,真他娘的郁闷!
RichardSzwz 2008-07-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 itymx 的回复:]
不用急 慢慢解决
[/Quote]
我看也是,别急,慢慢来,问题出来就是给人解决的!
chaye12 2008-07-05
  • 打赏
  • 举报
回复
string source = "pcdb.mdb";
string conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + source;
OleDbConnection olecon = new OleDbConnection(conn);
OleDbDataAdapter da = new OleDbDataAdapter("select * from jsgx", olecon);
OleDbCommandBuilder cb = new OleDbCommandBuilder(da);
DataSet ds = new DataSet();
da.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];

//保存
da.Update(ds);

这是孟子大哥写的代码,我稍微做了修改,但是我放在按钮的更新事件里,点击后又成了我数据库中的表了!
itymx 2008-07-05
  • 打赏
  • 举报
回复
不用急 慢慢解决
chaye12 2008-07-05
  • 打赏
  • 举报
回复
就是在ryzl表后面加了一自定义列,列名跟列值都是从另一个表中查询出来的!第1个dr1["money"].ToString())); 绑定列名,功能实现了,
另一个dr1["price"].ToString()我想填充列下面的所有值!
chaye12 2008-07-05
  • 打赏
  • 举报
回复
俩表没关系,我想代码已经很明显了吧
yuxianye1 2008-07-05
  • 打赏
  • 举报
回复
分多少不是问题,活不活是问题。
sqxm ryzl 这两个表啥关系?

建议你用一个查询语句查出来,然后绑定到dataGridView1
活在大数据时代 作者:狄青 来源:《山东国资》 2019年第10期 狄青 很多年以前,我见识过许多为自己编故事的人。比如有个人"学成归国",逢人便讲他是毕业于德国特克斯尼州州立大学的,而偏偏我的地理好,知道德国的13个州和3个市州里根本就没有特克斯尼以及甭管什么尼的这么一号。但我也没深问更没有当场戳穿,一是不好意思,二是我怕遇上的不是方鸿渐,而是韩学愈。 熟读《围城》的人都对韩学愈不陌生,其人出场不多,但十"有戏"。韩学愈依靠买来的克莱登大学文凭当上了三闾大学历史系主任,把在美国杂志夹缝里刊登的求租广告说成是"著作上过顶级杂志",把给知名科学家写信求职并遭到拒绝说成是"跟好多名人有信件来往"。如此镇定自若,在小说中玩到最后也没穿帮,倒把方鸿渐给赶走了。 韩学愈是下定决心把谎话扯到底,但韩学愈之所以说得那般从容兼敞亮,主要基于两点:一是彼时资讯条件有限,别说三闾大学地处抗战时期大后方之闭塞山区,即便大城市里,那时要想搞清楚美国是否有这么一所大学,美国某一学科对应的顶级杂志都有哪些,怕也并非易事;二是那时的大学,对教师学历固然有要求,但只是作为综合考量之一,并非如当今这般唯学历是从。人事部门看的是一个人的真才实学,所以西南联大才会有小学文凭的沈从文跟从美国归来的钱钟书同台任教的情状。所以韩学愈也才会把谎言说得理直气壮,因为他教的课还算可以,比某些怀揣真文凭的也不差。 但如今不同了。大数据时代,人们动动手指头就能搜到许多在之前恐怕连某些学校管理层都无法搞清的事实。并且网上还潜伏着数以万计的业余福尔摩斯,高手们想要"人肉"谁,只是钟的事儿,有些人之所以还在面不改色地扯谎,不是内心强大,而是他还没有被"人肉"的"量",抑或网民还没有顾上他。 科技的发展令一个人说谎的成本变得越来越高,只要有疏漏,就骗不过大数据。2019年央视3·15晚会展示了一种高科技盒子,人走在大街上,其各种数据就被这种盒子搜集到了,因而也引发了人们对个人数据泄露的焦虑。有人注意到曾走红于各大电视台黄金节目段的相亲、选秀类节目变得式微,其中就跟难以保密有关。因为相亲类节目必杀技是有房有车,选秀类节目必杀技是父母双亡。但这些剧情却经不起搜索——一个人头天编故事,转天他的真实情况就被公开,搞得某些节目已无信誉可言。 大数据令谎言无处安身,这是好事,但它也让我们每个人都无处躲藏。就像当下的资讯,浩瀚如海洋。然而,看得多、听得多,不见得就知道得多,反而造成了思考和认知能力下降。我们仿佛对任何事情都有认识、有感觉、有看法,却都是即兴的、零散的、易逝的、互不相干的、难以形成整体的,也根本无法固定的——因为,无时无刻无孔不入的资讯波涛又将我们的注意力卷向了下一个焦点。 高科技与大数据让我们看似变得"耳聪目明"又"包罗万象",但我们的趋同性却越来越强。而且,不单是像网红脸那样的审美趋同,人们太纠结和迷惑于眼前芝麻绿豆大的小事儿,以至于兴趣是即兴的,关注是即时的,阅读是碎片的,视野难以辽阔。 活在大数据时代全文共2页,当前为第1页。 老子说,五音使人耳聋,五色使人目盲。没错,活在大数据时代,注定会是一个缺少隐私的时代,但这依然不是主要的——主要的在于,我们越来越习惯于被速度裹挟着一路狂奔向前,而无暇顾及自己内心原本应该专注的那些东西都跑到哪里去了。 活在大数据时代全文共2页,当前为第1页。 责任编辑 陈衍焜 活在大数据时代全文共2页,当前为第2页。 活在大数据时代全文共2页,当前为第2页。 活在大数据时代

110,032

社区成员

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

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

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