C#的添加与删除问题!!!

perfect_love 2008-12-02 11:02:14
我写咯一个简单的投票系统,可是在我新添加一个用户名后在马上在删除控件中去删除新添加的这个用户就删除不了,但能删除以前的用户,新添加的这个用户写入咯数据库中的!
这是为什么??

这是删除代码:
private void button5_Click(object sender, EventArgs e)
{


ds = link.relateData("select * from piaoshu");

for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
dr = ds.Tables[0].Rows[i];
if(dr[0].ToString()==this.comboBox1.Text )
dr.Delete();
this.label4.Text = this.comboBox1.Text + "删除成功!";


}
link.updatedata(ds);
checkedListBox1.Items.Clear ();
textBox2.Text = "";
ds = link.relateData("select * from piaoshu");
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
dr = ds.Tables[0].Rows[i];
this.textBox2.Text += "姓名:" + dr[0].ToString() + "票数:" + dr[1].ToString() + "\r\n";
this.checkedListBox1.Items.Add(dr[0].ToString());

}


}

这是添加代码:
private void button2_Click(object sender, EventArgs e)
{
if (this.textBox1.Text == "")
{
MessageBox.Show("名字不能为空!");
}
else
{
this.comboBox1.Items.Add(textBox1.Text);

ds = link.relateData("select * from piaoshu");
string name = this.textBox1.Text;
DataRow dr = ds.Tables[0].NewRow();
dr[0] = name;
dr[1] = 0;
ds.Tables[0].Rows.Add(dr);
try
{

link.updatedata(ds);
this.label2.Text = name + "添加成功!";
this.textBox2.Text = "";
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
dr = ds.Tables[0].Rows[i];
this.textBox2.Text += "姓名:" + dr[0].ToString() + "票数:" + dr[1].ToString() + "\r\n";

}
this.checkedListBox1.Items.Add(textBox1.Text);
}
catch
{
MessageBox.Show(name + "以在候选人名列中!");
this.textBox1.Text = "";
}
}

}

谢谢~!
...全文
97 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
whitechololate 2008-12-02
  • 打赏
  • 举报
回复
如果老数据能删除的话,就不存在删除逻辑的错误,
建议楼主添加新用户后,在删除按钮事件中,跟踪一下,看看
ds = link.relateData("select * from piaoshu"); 中 ds里是否存在刚刚添加的用户。照楼主描述的 应该是ds里不存在新添加的用户
jasen520 2008-12-02
  • 打赏
  • 举报
回复
你检查一下删除时数据的索引是否正确
yilanwuyu123 2008-12-02
  • 打赏
  • 举报
回复
1, 最后的错别字

2, 可能是没有刷新数据源引起的
Old_Mouse 2008-12-02
  • 打赏
  • 举报
回复

ds.Tables[0].Rows[1].Delete;
jefflovejava 2008-12-02
  • 打赏
  • 举报
回复
建议你跟踪一下

dr.Delete();

这一句到底在你删除新用户的时候有没有执行,打印出来所以的对比值看看,是倒是是没有select出来还是怎么样,

这里的这些代码似乎没有什么问题的,如果你的控件正常的话,那么就是你的link.relateData(String)方法有点小bug,可能没有读出所有的数据
zwfhome1 2008-12-02
  • 打赏
  • 举报
回复
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
dr = ds.Tables[0].Rows[i];
if(dr[0].ToString()==this.comboBox1.Text )
dr.Delete();
this.label4.Text = this.comboBox1.Text + "删除成功!";


}
这个代码不正确
用FOREACH 或 WHILE
cnidtf 2008-12-02
  • 打赏
  • 举报
回复
你可能没有刷新窗体
qinhl99 2008-12-02
  • 打赏
  • 举报
回复
有错别字,哈哈
qinhl99 2008-12-02
  • 打赏
  • 举报
回复
有错别字,哈哈
qinhl99 2008-12-02
  • 打赏
  • 举报
回复
有错别字,哈哈

111,098

社区成员

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

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

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