ASP.net MySQL 简单的参数化编辑操作

一.说明

这一篇简单的个人总结,方便自己的复制粘贴,软件是Visual Studio 2019,SQLyog

二.界面呈现部分

aspx前端界面部分代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm4.aspx.cs" Inherits="MyTest03.WebForm4" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>

            编号:<asp:DropDownList ID="user_id" runat="server">
            </asp:DropDownList>

            <br />
            姓名:<asp:TextBox ID="user_name" runat="server"></asp:TextBox>
            <br />
            性别:<asp:DropDownList ID="user_sex" runat="server">
                <asp:ListItem Value="1"></asp:ListItem>
                <asp:ListItem Value="0"></asp:ListItem>
            </asp:DropDownList>
            <br />
            <asp:Button ID="update_btn" runat="server" OnClick="update_btn_Click" Text="修改值" />

        </div>
    </form>
</body>
</html>

界面效果:
在这里插入图片描述

三.逻辑代码部分

cs代码部分:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MySql.Data.MySqlClient;//引入mysql包

namespace MyTest03
{
    public partial class WebForm4 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //将数据库中的id提取出来,并给下拉列表赋值

            int i = 0;//初始化值

            MySqlConnection conn = new MySqlConnection(MysqlCall.connstr);
            conn.Open();//打开

            string sql = "select * from student order by id";

            MySqlCommand cmd = conn.CreateCommand();
            cmd.CommandText = sql;

            MySqlDataReader DR =cmd.ExecuteReader();//数据库读取
            while (DR.Read()) {
                user_id.Items.Insert(i, new ListItem(DR.GetString(0)));
                //将数据依次遍历,并取值(第一个参数是显示,后一个参数是value,因为id的值一样,固只写一个)
                i += 1;//将i值增加,用于界面正确的排序
            }

            DR.Close();//各种关闭
            cmd.Dispose();
            conn.Close();

            //如此,在就可以将数据库中的所有编号遍历在下列列表控件中,用于修改操作    
        }

        protected void update_btn_Click(object sender, EventArgs e)
        {
            //修改

            //从控件提取信息(第一个参数为动态参数,第二个为赋予他的值)
            string ids = user_id.SelectedValue.ToString();
            string names = user_name.Text.Trim();
            string sexs = user_sex.SelectedValue.ToString();
			
			//参数化 ?user_name 是一个key值
			//下面的代码:cmd.Parameters.AddWithValue("?user_id", ids);是为这个key值赋值
			
            string sql = "update student set  name = ?user_name , sex = ?user_sex where id = ?user_id";

            MySqlConnection conn = new MySqlConnection(MysqlCall.connstr);
            conn.Open();//打开

            MySqlCommand cmd = conn.CreateCommand();
            cmd.CommandText = sql;//执行的sql
            
            //为参数赋值
            cmd.Parameters.AddWithValue("?user_id", ids);
            cmd.Parameters.AddWithValue("?user_name", names);
            cmd.Parameters.AddWithValue("?user_sex", sexs);
			
			//*******************************//
			//与上面的三行代码作用一样,只不此方法附带了参数的属性
			//参数化
            //cmd.Parameters.Add(new MySqlParameter("?user_id", MySqlDbType.Int32));
            //cmd.Parameters.Add(new MySqlParameter("?user_name", MySqlDbType.VarChar, 50));
            //cmd.Parameters.Add(new MySqlParameter("?user_sex", MySqlDbType.Int32));

            //赋值
            //cmd.Parameters["?user_id"].Value = ids;
            //cmd.Parameters["?user_name"].Value = names;
            //cmd.Parameters["?user_sex"].Value = sexs;
       		//*******************************//
       		
            int result=cmd.ExecuteNonQuery();//运行
            cmd.Dispose();//各种关闭
            conn.Close();

			//通过反会值,提示是否修改成功
            if (result > 0)
            {
                Response.Write("修改成功");
            }
            else {
                Response.Write("修改失败");
            }

        }
    }
}

四.说明

参数化编辑,一般的格式为:

cmd.Parameters.AddWithValue("@user_id", ids);

而小白的服务器可能是字符集编码有问题,@时显示成功,却只能插入空值,固将**@替换为?,如果此方法行不通,或数据异常,请大家将代码中的?替换为@**.

下拉列表赋值参考:冷玩笑的<<给DropDownList赋值>>

此文是小白在学习张晨光老师的视频教学<<Asp.Net WEB服务器编程技术>>中做的学习笔记,一些知识点也是跟着教程走的,大家也可以去老师的主页去学习,再次谢谢大家.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值