请教dataGridView的多表更新

Cloud_drift 2009-07-20 04:55:05
请教一下:
我要做一个表单,对应数据库中的Select查询结果,用dataGridView显示。
然后我对dataGridView里面的数据进行更新、删除和添加,然后将其保存到数据库。
我知道如果Select语句是对于一个表的话,可以用它自带的SqlDataAdapter和Update函数完成。
但是现在我的Select查询涉及两个表(第二个表只是为了用它的一列字段作为排序标准),这样它就会提示“多个基表不支持动态SQL生成”。
那么请问我要完成这样的表单显示&更新功能该怎么做?或者有没有和dataGridView类似,但是更好的控件可以用?请指教~先谢谢啦~
...全文
352 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wkd04 2009-08-29
  • 打赏
  • 举报
回复
和楼主遇到相同的问题了,求解中
楼上两位都说的都太笼统了。做点注释啊。
gwf25sz 2009-07-24
  • 打赏
  • 举报
回复
楼主,建议你用SQL存储过程,一劳永逸
jiansu2008 2009-07-23
  • 打赏
  • 举报
回复

SqlConnection conn=new SqlConnection("Server=.;Initial Catalog=MyDb;uid=sa;pwd=sa;");
SqlDataAdapter adp= new SqlDataAdapter(@"select s.Id as SRId,s.SRName,s.SRNum,s.ConId,
c.name,c.age,c.sex from SR s,Contact c where c.id=s.conid", conn);

adp.UpdateCommand = new SqlCommand(@"update Contact set name=@name,age = @age,sex=@sex
where id = @ConId;update SR set SRName=@SRName,SRNum = @SRNum where id = @SRId", conn);
SqlParameter p = adp.UpdateCommand.Parameters.Add("@name", SqlDbType.VarChar);
p.SourceColumn = "name";
p = adp.UpdateCommand.Parameters.Add("@age", SqlDbType.VarChar);
p.SourceColumn = "age";
p = adp.UpdateCommand.Parameters.Add("@sex", SqlDbType.VarChar);
p.SourceColumn = "sex";
p = adp.UpdateCommand.Parameters.Add("@ConId", SqlDbType.VarChar);
p.SourceColumn = "ConId";

p = adp.UpdateCommand.Parameters.Add("@SRName", SqlDbType.VarChar);
p.SourceColumn = "SRName";
p = adp.UpdateCommand.Parameters.Add("@SRNum", SqlDbType.VarChar);
p.SourceColumn = "SRNum";
p = adp.UpdateCommand.Parameters.Add("@SRId", SqlDbType.VarChar);
p.SourceColumn = "SRId";

DataSet ds = new DataSet();
adp.Fill(ds, "MyCon");

DataView v = ds.Tables["MyCon"].DefaultView;
dgv.DataSource = v;
//--------------------------
private void button1_Click(object sender, EventArgs e)
{
adp.Update(ds, "MyCon");
}
Cloud_drift 2009-07-20
  • 打赏
  • 举报
回复
自己顶一下,求解啊~~

8,834

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 组件/控件开发
社区管理员
  • 组件/控件开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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