第39章、记录修改

 

【知识要点】
  (1)记录修改

【问题提出】
  我们可能对客户表修改它的联系方式,如何做呢?

【在线指导】

  我们在GridView新增加一列“编辑”,通过单击“修改”,打开客户的详细信息,然后输入修改的内容,然后单击“更新”可以完成。

  我们之前学习了BoundField列(绑定列)的用法,我们今天再学习一下HyperLinkField列(超级链接列)的用法,可以完成修改一条记录的功能。

一、创建SqlManage.aspx

1、设计界面

  (1)打开Hello项目,单击“启动页>最近使用的项目>Hello”。

  (2)在“解决方案资源管理器”中添加“SqlManage.aspx”页面。

  (3)从工具箱中拖1个GridView到SqlManage.aspx页面。

   GridView控件ID属性分别为:gvClient

        

   注:对GridView设置样式以及设置标题,由于前面已经多冷重复,在此不再赘述。
B.添加“删除”列

  

 

2、添加代码 

 (1)双击SqlManage.aspx页面空白处,在Page_Load()输入以下代码。

//连接SQL SERVER
string ConnSqlServer = "Server=www.woshicainiao.net;Database=SuperMarket;User ID=sa;Pwd=xxx";
SqlConnection Conn = new SqlConnection(ConnSqlServer);

//打开
Conn.Open();

//填充DataSet
string ClientSql = "SELECT * FROM Client";
SqlDataAdapter Adapter = new SqlDataAdapter(ClientSql, Conn);
DataSet Ds = new DataSet();
Adapter.Fill(Ds, "Client");

//执行命令
gvClient.DataSource = Ds.Tables["Client"];
gvClient.DataBind();

//关闭数据库
Conn.Close();

 

 

  (2)现在我们从“解决方案资源管理器”中,选择“SqlManage.aspx”,单击右键“在浏览器中查看”。 

 

  单击“神舟电脑”客户的“修改”,然后打开如下窗口。

  出错了!

  

  由于我们还没有创建SqlEdit.aspx,现在我们就去创建它。

二、创建SqlEdit.aspx

1、设计界面

  (1)打开Hello项目,单击“启动页>最近使用的项目>Hello”。

  (2)在“解决方案资源管理器”中添加“SqlEdit.aspx”页面。

2、添加代码          

  (1)双击SqlEdit.aspx页面空白处,在Page_Load()输入以下代码。

string ClientCode = Request.QueryString["id"].ToString();
Response.Write(ClientCode);

  即: 

 

  (2)现在我们从“解决方案资源管理器”中,选择“SqlManage.aspx”,单击右键“在浏览器中查看”。 

  再单击“修改”。我们发现“神舟电脑”客户的“客户编号”我们得到了,那么想显示客户的信息,对于我们来说不是难事了。

三、改造SqlEdit.aspx

1、设计界面

  (1)打开“SqlEdit.aspx”页面。

  (2)我们在界面上拖6个文本框和一个“更新”按钮。

  文本框的ID属性分别为:tbClientCode、tbClientName、tbPhone、tbEmail、tbContacter、tbMobile。  按钮的ID属性分别为:btnUpdate。

  

  注意:我们把tbClientCode客户编号设为只读,不希望更改编号信息。

  

2、添加代码          

  (1)双击SqlEdit.aspx页面空白处,在Page_Load()处:  

string ClientCode = Request.QueryString["id"].ToString();
Response.Write(ClientCode);

  把以上代码替换为以下代码, 即: 

//连接SQL SERVER
string ConnSqlServer = "Server=www.woshicainiao.net;Database=SuperMarket;User ID=sa;Pwd=xxx";
SqlConnection Conn = new SqlConnection(ConnSqlServer);

//从URL获取客户编号
string ClientCode = Request.QueryString["id"].ToString().Trim();

//打开
Conn.Open();

//读取Client表中的内容
string SelectSql = "SELECT * FROM Client WHERE cClientCode=@ClientCode";
SqlCommand Comm = new SqlCommand(SelectSql, Conn);
Comm.Parameters.Add("@ClientCode", SqlDbType.VarChar, 8);
Comm.Parameters["@ClientCode"].Value = ClientCode;

//Comm类似SQL SERVER查询编辑器中的"!执行"按纽
SqlDataReader DrClient = Comm.ExecuteReader();

//DataReader关联Comm执行的"SELECT * FROM Client"查询结果
//客户信息显示在文本框中
if (DrClient.Read())
{
  tbClientCode.Text = DrClient["cClientCode"].ToString();
  tbClientName.Text = DrClient["vClientName"].ToString();
  tbPhone.Text = DrClient["vPhone"].ToString();
  tbEmail.Text = DrClient["vEmail"].ToString();
  tbContacter.Text = DrClient["vContacter"].ToString();
  tbMobile.Text = DrClient["cMobile"].ToString();
}

DrClient.Close();

//关闭
Conn.Close();

  (2)现在我们从“解决方案资源管理器”中,选择“SqlManage.aspx”,单击右键“在浏览器中查看”。    

  再单击“修改”。我们发现“神舟电脑”客户的信息,已经显示出来了。

  

四、为SqlEdit.aspx添加“更新”。

1、设计界面

  (1)打开“SqlEdit.aspx”页面。

  (2)双击“更新”按钮。

  

2、添加代码          

  (1)双击SqlEdit.aspx的“更新”按钮,在btnUpdate_Click()处:  

//连接SQL SERVER
string ConnSqlServer = "Server=www.woshicainiao.net;Database=SuperMarket;User ID=sa;Pwd=xxx";
SqlConnection Conn = new SqlConnection(ConnSqlServer);

//从URL获取客户编号
string ClientCode = Request.QueryString["id"].ToString().Trim();

//获取客户信息
string ClientName = tbClientName.Text;
string Phone = tbPhone.Text;
string Email = tbEmail.Text;
string Contacter = tbContacter.Text;
string Mobile = tbMobile.Text;

//打开
Conn.Open();

//读取Client表中的内容
string SelectSql = "UPDATE Client SET vClientName=@ClientName,vPhone=@Phone,vEmail=@Email,vContacter=@Contacter,cMobile=@Mobile WHERE cClientCode=@ClientCode";
SqlCommand Comm = new SqlCommand(SelectSql, Conn);

Comm.Parameters.Add("@ClientCode", SqlDbType.VarChar, 8);
Comm.Parameters.Add("@ClientName", SqlDbType.VarChar, 30);
Comm.Parameters.Add("@Phone", SqlDbType.VarChar, 30);
Comm.Parameters.Add("@Email", SqlDbType.VarChar, 30);
Comm.Parameters.Add("@Contacter", SqlDbType.VarChar, 30);
Comm.Parameters.Add("@Mobile", SqlDbType.VarChar, 11);

Comm.Parameters["@ClientCode"].Value = ClientCode;
Comm.Parameters["@ClientName"].Value = ClientName;
Comm.Parameters["@Phone"].Value = Phone;
Comm.Parameters["@Email"].Value = Email;
Comm.Parameters["@Contacter"].Value = Contacter;
Comm.Parameters["@Mobile"].Value = Mobile;

//Comm类似SQL SERVER查询编辑器中的"!执行"按纽
Comm.ExecuteNonQuery();

tbClientName.Text = "";
tbPhone.Text = "";
tbEmail.Text = "";
tbContacter.Text = "";
tbMobile.Text = "";

//关闭
Conn.Close();

Response.Write("修改成功!");


  (2)现在我们从“解决方案资源管理器”中,选择“SqlManage.aspx”,单击右键“在浏览器中查看”。    

  再单击“修改”。我们发现“神舟电脑”客户的信息,已经显示出来了。然后我们把手机号码修改为:

  我们单击“更新”按钮之后。

  修改成功了!你可能感觉挺兴奋的!我们在数据库中看一下,好像手机号码并没有改!只差一步!一步之遥!

(3)双击SqlEdit.aspx页面空白处,在Page_Load()处添加两行代码: 

if (!Page.IsPostBack)
{

//连接SQL SERVER
string ConnSqlServer = "Server=www.woshicainiao.net;Database=SuperMarket;User ID=sa;Pwd=xxx";
SqlConnection Conn = new SqlConnection(ConnSqlServer);

//从URL获取客户编号
string ClientCode = Request.QueryString["id"].ToString().Trim();

//打开
Conn.Open();

//读取Client表中的内容
string SelectSql = "SELECT * FROM Client WHERE cClientCode=@ClientCode";
SqlCommand Comm = new SqlCommand(SelectSql, Conn);
Comm.Parameters.Add("@ClientCode", SqlDbType.VarChar, 8);
Comm.Parameters["@ClientCode"].Value = ClientCode;

//Comm类似SQL SERVER查询编辑器中的"!执行"按纽
SqlDataReader DrClient = Comm.ExecuteReader();

//DataReader关联Comm执行的"SELECT * FROM Client"查询结果
if (DrClient.Read())
{
  tbClientCode.Text = DrClient["cClientCode"].ToString();
  tbClientName.Text = DrClient["vClientName"].ToString();
  tbPhone.Text = DrClient["vPhone"].ToString();
  tbEmail.Text = DrClient["vEmail"].ToString();
  tbContacter.Text = DrClient["vContacter"].ToString();
  tbMobile.Text = DrClient["cMobile"].ToString();
}

DrClient.Close();

//关闭
Conn.Close();
}

  (4)我们再试下,完全OK了。   

 讲解:

  if (!Page.IsPostBack){}表示第一次才执行其中的代码。   

  对于本案例,我们第一次希望显示所选择“修改”的客户,输入新的内容,如果不加!Page.IsPostBack()则提交到数据库的仍然是老内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蒋会全

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值