特急跪求,调用自定义的类库中的方法出错! 本帖最后由 bulls5988 于 2011-11-09 20:27:56 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你这个设计有问题啊,逻辑也有问题,我都不晓得你的代码,都是怎样的?传一个datagridview进去,又传一个出来!?删除东西,也不知道为什么要传一个datagridview进去,还要返回一个出来!?你说你要删除,我都没有看到你哪里删除了,里面用了sqlcomman一类的东西,又没有看到删除的语句,没有删除,竟然里面却还有update一类的东西!?不知道谁能看懂 ... 估计是你没看懂吧,为什么没人能看懂?第一个userlist_load方法是填充 datashow.cs 中的控件m_userlist users = new m_userlist();users.userlist_load(d_userlist);这时候回返回控件名,然后第二个方法对这个控件做datagridview里面的选中行移除,然后直接更新dgv中的内容到userlist_load所读取的表中。而且现在是可以删除数据的,不过是删除的数据并不是我选中的那一行而已。 public DataGridView userlist_load(DataGridView u_data) { //读取用户列表 m_sql_conn fee_conn = new m_sql_conn(); SqlConnection conn = new SqlConnection(fee_conn.sql_conn()); SqlCommand cmd = new SqlCommand(userload,conn); find_do = new SqlDataAdapter(); find_do.SelectCommand = cmd; ds = new DataSet(); try { u_data.RowHeadersVisible = false; find_do.Fill(ds, "rs"); } catch(System.Exception) { MessageBox.Show("数据库连接失败", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); return null; } u_data.DataSource = ds.Tables["rs"]; return u_data; } public DataGridView user_del(DataGridView del_udata) { //删除所选用户信息 DialogResult uprs = MessageBox.Show("您真的要删除此用户吗?", "删除提示"); switch (uprs) { case DialogResult.Yes: SqlCommandBuilder delete = new SqlCommandBuilder(find_do); try { find_do.DeleteCommand = delete.GetDeleteCommand(); del_udata.Rows.Remove(del_udata.CurrentRow); find_do.Update(ds, "rs"); } catch (System.Exception) { MessageBox.Show("所选用户不能为空", "提示"); return del_udata; } del_udata.Update(); MessageBox.Show("用户已删除", "提示"); break; case DialogResult.No: break; } return del_udata; }调用类窗体,datashow.csC# codeprivate void m_usermange_Load(object sender, EventArgs e) {//填充GDV控件 m_userlist users = new m_userlist(); users.userlist_load(d_userlist);}private void b_del_Click(object sender, EventArgs e) {//使用返回控件名,删除数据。 m_userlist users = new m_userlist(); users.user_del(users.userlist_load(d_userlist)); } 代码就不说了,问题应该在CurrentRow,没有把你操作的行设置为Currentrow。 求助 C# 怎样链接 linux 服务器的 FTP 用的是 SSH 传输 DataGridView以树形结构显示数据 SendMessage问题,怎么关闭不了 提示 未处理SqlException如何解决 ??? Visual studio.net 2003究竟有几张盘? 关于强名称的问题(如何只允许部分dll访问有强名称的dll) 求一个SQL存储过程 在web页面做水晶报表可以把整个表打印出来 如何获取Microsoft Agent角色的动作列表 如何生成决不重复的随机数? 我从数据库对用户反馈的数据进行统计,运行结果却一直是反馈人数为0。 richtextbox光标总在最后
不知道谁能看懂
... 估计是你没看懂吧,为什么没人能看懂?第一个userlist_load方法是填充 datashow.cs 中的控件m_userlist users = new m_userlist();
users.userlist_load(d_userlist);这时候回返回控件名,然后第二个方法对这个控件做datagridview里面的选中行移除,然后直接更新dgv中的内容到userlist_load所读取的表中。而且现在是可以删除数据的,不过是删除的数据并不是我选中的那一行而已。
{ //读取用户列表
m_sql_conn fee_conn = new m_sql_conn();
SqlConnection conn = new SqlConnection(fee_conn.sql_conn());
SqlCommand cmd = new SqlCommand(userload,conn);
find_do = new SqlDataAdapter();
find_do.SelectCommand = cmd;
ds = new DataSet();
try
{
u_data.RowHeadersVisible = false;
find_do.Fill(ds, "rs");
}
catch(System.Exception)
{
MessageBox.Show("数据库连接失败", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
return null;
}
u_data.DataSource = ds.Tables["rs"];
return u_data;
} public DataGridView user_del(DataGridView del_udata)
{
//删除所选用户信息 DialogResult uprs = MessageBox.Show("您真的要删除此用户吗?", "删除提示");
switch (uprs)
{
case DialogResult.Yes:
SqlCommandBuilder delete = new SqlCommandBuilder(find_do);
try
{
find_do.DeleteCommand = delete.GetDeleteCommand();
del_udata.Rows.Remove(del_udata.CurrentRow);
find_do.Update(ds, "rs");
}
catch (System.Exception)
{
MessageBox.Show("所选用户不能为空", "提示");
return del_udata;
}
del_udata.Update();
MessageBox.Show("用户已删除", "提示");
break;
case DialogResult.No:
break;
}
return del_udata;
}
调用类窗体,datashow.cs
C# code
private void m_usermange_Load(object sender, EventArgs e)
{
//填充GDV控件
m_userlist users = new m_userlist();
users.userlist_load(d_userlist);
}
private void b_del_Click(object sender, EventArgs e)
{
//使用返回控件名,删除数据。
m_userlist users = new m_userlist();
users.user_del(users.userlist_load(d_userlist));
}