关于用代码删除datagrid中绑定数据表中的数据

dbkite 2009-03-16 11:11:34
新手 做一个购物车 一个结算清理的页面 点击删除指定的数据 但老是最后条删除不了 清空购物车也一样 检查数据库还剩下一条数据 搞不懂 希望高手帮忙看看
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Text.RegularExpressions;




public partial class AddToCart : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Session["count"] = count.Text;
if (!IsPostBack)
{
if (Session["username"] == null)
{
Response.Write("<script language=javascript>alert('请先登录');location.href='index.aspx';</script>");
}

//接受传送数据
else
{
DVBind();
this.Label2.Visible = false;
TotalMoney();
}
}
}

//绑定商品信息
public void DVBind()
{
string str = System.Configuration.ConfigurationManager.AppSettings["connstring"].ToString();
SqlConnection conn = new SqlConnection();
conn.ConnectionString = str;
conn.Open();

// 开始没有取值 从inder.aspx
string id;
id = Request.QueryString["bookid"].ToString();
string sql = "select bookid,bookname,price from book where bookid=" + id;
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader dr = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(dr);
dr.Dispose();


//存入表
string sqlinsert = "insert into Orders(username,bookid,bookname,price) values('" + Session["username"].ToString() + "','" + dt.Rows[0][0] + "','" + dt.Rows[0][1] + "'," + dt.Rows[0][2] + " )";
SqlCommand cmd2 = new SqlCommand(sqlinsert, conn);
dr = cmd2.ExecuteReader();
dr.Dispose();

//检索数据 资源要释放
string sql1 = "select * from Orders where username='"+Session["username"]+"'";

SqlDataAdapter da = new SqlDataAdapter(sql1,conn);
DataSet ds = new DataSet();
da.Fill(ds);

//逐行提取数据
double sum = 0;
foreach (DataRow theRow in ds.Tables[0].Rows)
{
sum += (Convert.ToInt32(theRow["number"]) * Convert.ToInt32(theRow["price"]));
}


this.count.Text = sum.ToString();
GridView1.DataSource = ds; //[0].DefaultView
GridView1.DataBind();
cmd.Dispose();
conn.Close();


}
//清空商品信息函数
public void DeleteAllInfo()
{
string str = System.Configuration.ConfigurationManager.AppSettings["connstring"].ToString();
SqlConnection conn = new SqlConnection();

conn.ConnectionString = str;
conn.Open();

string id;
id = Request.QueryString["bookid"].ToString();

string sql = "delete from Orders where username='"+Session["username"]+"'";
SqlCommand cmd = new SqlCommand(sql, conn);
int i = Convert.ToInt32(cmd.ExecuteNonQuery());

if (i > 1)
{
Response.Write("清空成功!");
}



cmd.ExecuteNonQuery();
this.GridView1.DataSource = null;
this.GridView1.Visible = false;
cmd.Dispose();
conn.Close();

}
//删除指定商品的信息
public void DeleteGoods(string OrdersID)
{
string str = System.Configuration.ConfigurationManager.AppSettings["connstring"].ToString();
SqlConnection conn = new SqlConnection();

conn.ConnectionString = str;
conn.Open();

string id = OrdersID;
id = Request.QueryString["bookid"].ToString();

string sql = "delete from Orders where bookid=" + id;
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
cmd.Dispose();
conn.Close();
}
public decimal price;
public int num;
public static decimal sum;
public void TotalMoney()
{
string str = System.Configuration.ConfigurationManager.AppSettings["connstring"].ToString();
SqlConnection conn = new SqlConnection();

conn.ConnectionString = str;
conn.Open();

string id;
id = Request.QueryString["bookid"].ToString();

sum = 0;
string sql = "select price,number from Orders where bookid=" + id;
SqlCommand cmd = new SqlCommand(sql,conn);
SqlDataReader rd = cmd.ExecuteReader();
rd.Close();
cmd.Dispose();
conn.Close();

}

protected void LinkButton3_Click(object sender, EventArgs e)
{
DeleteAllInfo();
this.Label2.Visible = true;
DVBind();
this.count.Text= "0";
}
protected void LinkButton2_Click(object sender, EventArgs e)
{
Response.Redirect("index.aspx");
}
protected void LinkButton4_Click(object sender, EventArgs e)
{
Response.Redirect("Check.aspx");
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{

string oID = (GridView1.DataKeys[e.RowIndex].Value).ToString();
DeleteGoods(oID);
TotalMoney();
DVBind();
}
//当页码改变时,重新绑定商品信息
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
DVBind();
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
DVBind();
}

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string str = System.Configuration.ConfigurationManager.AppSettings["connstring"].ToString();
SqlConnection conn = new SqlConnection();
conn.ConnectionString = str;
conn.Open();

string id;
id = Request.QueryString["bookid"].ToString();

//数量在第五行
string GoodsNum =(((TextBox)(GridView1.Rows[e.RowIndex].Cells[4].Controls[0])).Text.ToString());
if (IsValidNum(GoodsNum))
{
string sql = "update Orders set number=" + GoodsNum + "where bookid=" + id;
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
GridView1.EditIndex = -1;
DVBind();
TotalMoney();
}
else
{
GridView1.EditIndex = -1;
DVBind();

}
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
DVBind();
TotalMoney();
}
//判断修改的数据是否为有效的数据
public bool IsValidNum(string num)
{
return Regex.IsMatch(num, @"^\+?[1-9][0-9]*$");
}
}
...全文
82 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
xb12369 2012-04-19
  • 打赏
  • 举报
回复
xml里的;连接到底怎么写啊??


<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add connectionString="Data Source=.;Initial Catalog=Rujia_Transmit;uid=sa;pwd=123456" name="connString" providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>

111,126

社区成员

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

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

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