请教!为什么删除完数据其他数据也查询不到了?

canylove 2009-12-16 04:24:26

关于以下代码,当我查询到数据,选择要删除的东西后,再查询数据时不出现任何东西,没有删除的数据也查询不到 只有把页面关掉重新查询才行 为什么? 请指教!!

 protected void Getdatabind()
{
Sda.SelectCommand = new SqlCommand();
Sda.SelectCommand.CommandTimeout = 180;
Sda.SelectCommand.Connection = con;
Sda.SelectCommand.CommandText = "LOTNO1";
Sda.SelectCommand.CommandType = CommandType.StoredProcedure;

Sda.SelectCommand.Parameters.Add(new SqlParameter("@FDATE", SqlDbType.Char)).Value = TxtDate.Text;
Sda.SelectCommand.Parameters.Add(new SqlParameter("@Class", SqlDbType.NVarChar)).Value = DDLClass.SelectedValue.Trim();



if (con.State.ToString() == "Closed")
con.Open();
Sda.Fill(Ds, "QTYLOT");
GridView1.DataSource = Ds.Tables["QTYLOT"].DefaultView;
GridView1.DataBind();

con.Close();

}
protected void Button2_Click(object sender, EventArgs e)
{
Sda.DeleteCommand = new SqlCommand();
Sda.DeleteCommand .Connection = con;
Sda.DeleteCommand .CommandType = CommandType.Text;
Sda.DeleteCommand .CommandText = "DELETE FROM ITEM WHERE LOTNO='" + txtlot.Text + "' ";
if (con.State.ToString() == "Closed")
con.Open();
//SqlDataReader sdr = Sda.DeleteCommand.ExecuteReader();
int p = Sda.DeleteCommand.ExecuteNonQuery();
//GridView1.DataSource = sdr;
//GridView1.DataBind();

con.Close();
if (txtlot.Text != "")
{
labAlert.Visible = true;
GridView1.Visible = false;
txtlot.Text = "";
}
//else
//{
//}

}


...全文
232 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
canylove 2009-12-17
  • 打赏
  • 举报
回复
亲爱的同志们我知道我错在哪里了!! if (txtlot.Text != "")
{
labAlert.Visible = true;
GridView1.Visible = false; 把这句红色的去掉就行了
txtlot.Text = "";
}

谢谢大家!!!
canylove 2009-12-17
  • 打赏
  • 举报
回复
亲爱的同志们我知道我错在哪里了!! if (txtlot.Text != "")
{
labAlert.Visible = true;
GridView1.Visible = false; 把这句去掉就行了 color]
txtlot.Text = "";
}

谢谢大家!!!
canylove 2009-12-17
  • 打赏
  • 举报
回复
谢谢大家的建议!

[Quote=引用 18 楼 zsh0809 的回复:]
你的代码里面加上try catch,应该是你删除失败了,数据库没有close还是处于open状态,下次在点击查询的时候,你判断通过 if (con.State.ToString() == "Closed"),这句话根本进不去,所以就没显示结果了。

[/Quote]
我现在头都糊了,不知道该怎么办了
SELECT_SUN 2009-12-16
  • 打赏
  • 举报
回复
你删除以后多等一会就有数据了~~
l274747948 2009-12-16
  • 打赏
  • 举报
回复
Getdatabind()

最看设断点看一下啊~!
netwar 2009-12-16
  • 打赏
  • 举报
回复
删除完重新BIND,然后在页面中设置enableViewState=true
jenny0810 2009-12-16
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 canylove 的回复:]
引用 10 楼 sj6071 的回复:
  Sda.DeleteCommand .CommandText = "DELETE FROM ITEM WHERE LOTNO='" + txtlot.Text + "' ";

这样写会被注入


那怎么做呢?
[/Quote]传参
vip__888 2009-12-16
  • 打赏
  • 举报
回复
重新绑定一次
「已注销」 2009-12-16
  • 打赏
  • 举报
回复
你的代码里面加上try catch,应该是你删除失败了,数据库没有close还是处于open状态,下次在点击查询的时候,你判断通过 if (con.State.ToString() == "Closed"),这句话根本进不去,所以就没显示结果了。
kurorolove 2009-12-16
  • 打赏
  • 举报
回复
顶16楼的
mjay0210 2009-12-16
  • 打赏
  • 举报
回复
哎 人家就问个显示 你们说注入! 这部是落井下石吗?
完了 这次成浆糊了!
bj_kevin51 2009-12-16
  • 打赏
  • 举报
回复
Getdatabind() 这个东西你明明写的绑定不绑定 怎么显示 我汗。。。。。。。。
至于SQL注入方面,我觉得 拼字符串的好使。
sh_suyuelin 2009-12-16
  • 打赏
  • 举报
回复
注释去掉。页面加载能显示数据么?
Lovely_baby 2009-12-16
  • 打赏
  • 举报
回复
看你的代码 删除再绑定数据是没有问题的~~
难道是数据库打开 关闭的问题???
_0筱筱0_ 2009-12-16
  • 打赏
  • 举报
回复
你最好在Page_Load的方法上打个断点 看第二次页面加载的时候 是走到哪里跳出了 还是就没有执行绑定...很多问题都是调试才知道错误的...
canylove 2009-12-16
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 sj6071 的回复:]
  Sda.DeleteCommand .CommandText = "DELETE FROM ITEM WHERE LOTNO='" + txtlot.Text + "' ";

这样写会被注入
[/Quote]

那怎么做呢?
sj6071 2009-12-16
  • 打赏
  • 举报
回复
Sda.DeleteCommand .CommandText = "DELETE FROM ITEM WHERE LOTNO='" + txtlot.Text + "' ";

这样写会被注入
canylove 2009-12-16
  • 打赏
  • 举报
回复

以下是全部代码,请指教

public partial class LotNo1 : System.Web.UI.Page
{
private SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["Con"]);
private SqlDataAdapter Sda = new SqlDataAdapter();
private DataSet Ds = new DataSet();

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{

DateTime td = DateTime.Now;

string strMonth = "";
string strDay = "";

if (td.Month.ToString().Length < 2)
strMonth = "0" + td.Month.ToString();
else
strMonth = td.Month.ToString();

if (td.Day.ToString().Length < 2)
strDay = "0" + td.Day.ToString();
else
strDay = td.Day.ToString();

TxtDate.Text = td.Year.ToString() + "/" + strMonth + "/" + strDay;
TxtDate.Attributes.Add("onclick", "fPopCalendar(this)");
BindClass();
//Getdatabind();
}

}
private void BindClass()
{
DDLClass.Items.Clear();

ListItem lld_1 = new ListItem();
lld_1.Text = "全部";
lld_1.Value = "";
DDLClass.Items.Add(lld_1);

ListItem lld_2 = new ListItem();
lld_2.Text = "A";
lld_2.Value = "A";
DDLClass.Items.Add(lld_2);

ListItem lld_3 = new ListItem();
lld_3.Text = "B";
lld_3.Value = "B";
DDLClass.Items.Add(lld_3);

ListItem lld_4 = new ListItem();
lld_4.Text = "C";
lld_4.Value = "C";
DDLClass.Items.Add(lld_4);

}

protected void Getdatabind()
{
Sda.SelectCommand = new SqlCommand();
Sda.SelectCommand.CommandTimeout = 180;
Sda.SelectCommand.Connection = con;
Sda.SelectCommand.CommandText = "LOTNO1";
Sda.SelectCommand.CommandType = CommandType.StoredProcedure;

Sda.SelectCommand.Parameters.Add(new SqlParameter("@FDATE", SqlDbType.Char)).Value = TxtDate.Text;
Sda.SelectCommand.Parameters.Add(new SqlParameter("@Class", SqlDbType.NVarChar)).Value = DDLClass.SelectedValue.Trim();



if (con.State.ToString() == "Closed")
con.Open();
Sda.Fill(Ds, "QTYLOT");
GridView1.DataSource = Ds.Tables["QTYLOT"].DefaultView;
GridView1.DataBind();

con.Close();

}
protected void Button2_Click(object sender, EventArgs e)
{
Sda.DeleteCommand = new SqlCommand();
Sda.DeleteCommand .Connection = con;
Sda.DeleteCommand .CommandType = CommandType.Text;
Sda.DeleteCommand .CommandText = "DELETE FROM ITEM WHERE LOTNO='" + txtlot.Text + "' ";
if (con.State.ToString() == "Closed")
con.Open();
//SqlDataReader sdr = Sda.DeleteCommand.ExecuteReader();
int p = Sda.DeleteCommand.ExecuteNonQuery();
//GridView1.DataSource = sdr;
//GridView1.DataBind();

con.Close();
if (txtlot.Text != "")
{
labAlert.Visible = true;
GridView1.Visible = false;
txtlot.Text = "";
}
//else
//{
//}
Getdatabind();

}
protected void Button1_Click(object sender, EventArgs e)
{
Getdatabind();
}

}
canylove 2009-12-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 bojiansky 的回复:]
protected void Button2_Click(object sender, EventArgs e)
       
       Getdatabind();

    }
[/Quote]

也是不行的
tzs2304 2009-12-16
  • 打赏
  • 举报
回复
删除操作后再Getdatabind()一次
加载更多回复(6)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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