• c#操作数据库


    1.利用SQL语句添加 
       在SQL语句中提供了INSERT语句进行数据添加,其语法格式如下。

    INSERT [Into] table_name[(column_list)] values (data_values)


    说明:INSERT是关健字,Into是可选项,table_name为表名,即向哪个表中插入数据。column_list为表中列名,如果为多列,则列名间用逗号隔开,省略该参数,即向表中所有列插入数据。data_values为向表中插入的数据。

       利用SQL语句向数据库添加记录时,首先要创建SqlConnection类的一个对象,用来连接数据库,然后定义添加的SQL字符串,最后使用SqlCommand对象的ExecuteNonQuery方法执行记录的添加操作。

    本例通过在指定的文本框中输入所要添加的用户信息,单击【添加】按钮,通过在按钮的Click事件中利用SQL语句来实现添加过程,添加的信息将显示在GridView控件中。

        程序开发步骤:

       (1)新建一个网站,将其命名为Ex19_01,默认主页为Default.aspx。

       (2)向Default.aspx页中添加一个Table表格,用于布局页面,然后在Table表格中分别添加一个GridView控件、3个TextBox控件和一个Button控件,用来显示添加的结果、输入添加信息和执行添加命令。

       (3)主要程序代码。

       首先,在Page_Load事件中调用自定义的绑定方法。

    protected void Page_Load(object sender, EventArgs e) 
         { 
             if (IsPostBack) 
             { 
                 GridViewBind(); 
             } 
         } 
       自定义绑定方法GridViewBind()代码如下。

        public void GridViewBind() 
         { 
             SqlConnection con = new SqlConnection("Server=(Local);Uid=sa;pwd=;DataBase=fangdawei"); 
             con.Open(); 
             SqlDataAdapter ada = new SqlDataAdapter("select * from tb_Member", con); 
             DataSet ds = new DataSet(); 
             ada.Fill(ds); 
             GridView1.DataSource = ds; 
             GridView1.DataBind(); 
             con.Close(); 
         }


       自定义一个getConut()方法,此方法将用来判断是否有添加了相同的记录,代码如下。

        public int getConut() 
         {

             SqlConnection con = new SqlConnection("Data Source=(local);Database=fangdawei;Uid=sa;Pwd=;"); 
             con.Open(); 
             string str = "select * from tb_Member where name='" + TextBox1.Text + "'and sex='" + TextBox2.Text + "'and nPlace='" + TextBox3.Text + "'"; 
             SqlCommand com = new SqlCommand(str, con); 
             int intcont = Convert.ToInt32(com.ExecuteScalar()); 
             con.Close(); 
             com.Clone(); 
             return intcont; 
         } 
       "添加"按钮Click事件代码如下。

       protected void Button1_Click(object sender, EventArgs e) 
         { 
             if (getConut() != 0)//判断是否添加了相同的记录 
             { 
                 Response.Write("alert('对不起!不允许填写相同记录!')"); 
             } 
             else 
             { 
                 try 
                 { 
                     SqlConnection sqlcon = new SqlConnection("Data Source=(local);Database=fangdawei;Uid=sa;Pwd=;"); 
                     sqlcon.Open(); 
                     string InsertSql = "insert into tb_Member(name,sex,nPlace) values ('" + TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox3.Text + "')"; 
                     SqlCommand com = new SqlCommand(InsertSql, sqlcon); 
                     com.ExecuteNonQuery(); 
                     SqlDataAdapter ada = new SqlDataAdapter("select * from tb_Member", sqlcon); 
                     DataSet ds = new DataSet(); 
                     ada.Fill(ds, "tb_Member "); 
                     GridView1.DataSource = ds; 
                     GridView1.DataBind(); 
                     sqlcon.Close(); 
                     Response.Write("alert('添加成功!')"); 
                 } 
                 catch(Exception ex) 
                 { 
                     Response.Write("ex.Message.ToString()"); 
                 } 
             } 
          }

    2.通过SqlParameter参数添加 
       通过SqlParameter参数向数据库添加数据,主要使用SqlParameter类的一些属性和方法。

       首先要创建SqlConnection类的一个对象,用来连接数据库,然后插入一个带参数的SQL命令。

       例如,使用的带参数的SQL命令实现向数据库的图书信息表(“tb_BookInfo”表)中添加相关的图书信息,代码如下。

    insert into tb_BookInfo (BookName,BookIntroduce,BookPrice,BookIsNew) values(@BookName,@BookIntroduce,@BookPrice,@BookIsNew) 
       插入完带参数的SQL命令后,通过SqlCommand对象的Add方法向SqlParameter中添加参数,并给相应的参数赋值,最后使用SqlCommand对象的ExecuteNonQuery方法执行记录的添加操作。

       说明:在使用带参数的SQL命令(如insert、update和delete等命令)时,其中的参数必须要用标识符@来标记,而参数名称可自己定义。在这种情况下,参数与命令关联的顺序就不重要了。

        注意:OLEDB和ODBC数据源使用以问号(?)占位符标识的定位参数。参数的顺序是重要的。这一点与SQL Server是不同的,要牢记!

       本例通过在页面指定的文本框中输入要添加的相关信息,通过在【添加】按钮的Click事件中使用SqlParameter参数来实现添加操作,添加的信息将显示在GridView控件中。
        程序开发步骤:

       (1)新建一个网站,将其命名为Ex19_02,默认主页为Default.aspx。

       (2)向Default.aspx页中添加一个Table表格,用于布局页面,然后在Table表格中分别添加一个GridView控件、4个TextBox控件和一个Button控件,用来显示添加的结果、输入添加信息和执行添加命令。

       (3)主要程序代码。

       “添加信息”按钮Click事件代码如下:

    protected void Button1_Click(object sender, EventArgs e) 
         { 
             SqlConnection con = new SqlConnection("Data Source=(local);Database=fangdawei;Uid=sa;Pwd=;"); 
             con.Open(); 
             string str = "select count(*) from tb_BookInfo where BookName='" + TextBox1.Text.ToString() + "'"; 
             SqlCommand com = new SqlCommand(str, con); 
             int intcont = Convert.ToInt32(com.ExecuteScalar()); 
             if (intcont > 0)//判断数据库中是否有相同的录 
             {    
                 Response.Write("alert('对不起!不允许填写相同记录!')"); 
             } 
             else 
             { 
                 try 
                 { 
                     //插入命令 
                     string sqlstr = "insert into tb_BookInfo (BookName,BookIntroduce,BookPrice,BookIsNew) values(@BookName,@BookIntroduce,@BookPrice,@BookIsNew)"; 
                     SqlCommand mycom = new SqlCommand(sqlstr, con); 
                     //添加参数 
                     mycom.Parameters.Add(new SqlParameter("@BookName", SqlDbType.VarChar,50)); 
                     mycom.Parameters.Add(new SqlParameter("@BookIntroduce", SqlDbType.VarChar,50)); 
                     mycom.Parameters.Add(new SqlParameter("@BookPrice", SqlDbType.Money,8)); 
                     mycom.Parameters.Add(new SqlParameter("@BookIsNew", SqlDbType.Char,10)); 
                     //给参数赋值 
                     mycom.Parameters["@BookName"].Value = TextBox1.Text; 
                     mycom.Parameters["@BookIntroduce"].Value = TextBox2.Text; 
                     mycom.Parameters["@BookPrice"].Value = Convert.ToDecimal(TextBox3.Text); 
                     mycom.Parameters["@BookIsNew"].Value = DropDownList1.SelectedValue.ToString(); 
                     //执行添加语句 
                     mycom.ExecuteNonQuery(); 
                     con.Close(); 
                     BindData(); 
                     Response.Write("alert('添加成功!')"); 
                 } 
                 catch(Exception ex) 
                 { 
                     Response.Write(ex.Messgae.ToString()); 
                 } 
             }   
    }

    3、通过存储过程添加 
       存储过程可以过滤SQL语句中的非法字符,而且在创建时可直接在服务器上进行编译,所以执行起来比单个SQL语句快。通过存储过程添加数据,可以提高程序的执行效率,而且便于以后的维护。

    利用存储过程向数据库添加记录时,首先要创建SqlConnection类的一个对象,用来连接数据库,然后使用SqlCommand对象的CommandType属性指定要执行的SQL文本命令为存储过程,并通过Add方法向SqlParameter中添加参数,最后使用SqlCommand对象的ExecuteNonQuery方法执行数据更新操作。

          本例主要应用存储过程实现向图书信息数据库中添加数据,在页面指定的文本框中输入相关的添加信息,通过【添加】按钮的Click事件中调用存储过程来实现添加操作。
       使用存储过程添加数据之前,首先需要创建存储过程probookinfo,代码如下:

    CREATE    PROCEDURE probookinfo 
    (@BookName     [VarChar](50), 
    @BookIntroduce    [VarChar](50), 
    @BookPrice    [Money], 
       @BookIsNew   [VarChar](50)) 
    AS INSERT INTO [fangdawei].[dbo].[tb_BookInfo] ( 
       [BookName], 
       [BookIntroduce], 
    [BookPrice], 
       [BookIsNew]) 
    VALUES ( 
       @BookName, 
       @BookIntroduce, 
       @BookPrice, 
       @BookIsNew) 
    GO 
       程序开发步骤:

       (1)新建一个网站,将其命名为Ex19_03,默认主页为Default.aspx。

       (2)向Default.aspx页中添加一个Table表格,用于布局页面,然后在Table表格中分别添加一个GridView控件、4个TextBox控件和一个Button控件,用来显示添加的结果、输入添加信息和执行添加命令。

       (3)主要程序代码。

       “添加信息”按钮Click事件代码如下: protected void Button1_Click(object sender, EventArgs e) 
         { 
             SqlConnection myconn = new SqlConnection("server=(local);Database=fangdawei;Uid=sa;Pwd="); 
             //打开链接 
             myconn.Open(); 
             string str = "select count(*) from tb_BookInfo where BookName='" + TextBox1.Text.ToString() + "'"; 
             //创建SqlCommand对象 
             SqlCommand com = new SqlCommand(str,myconn); 
             int intcont = Convert.ToInt32(com.ExecuteScalar()); 
             if (intcont > 0) 
             { 
                 Response.Write("alert('对不起!不允许填写相同记录!')"); 
             } 
             else 
             { 
                 try 
                 { 
                     SqlCommand mycom = new SqlCommand("probookinfo", myconn); 
                     //调用存储过程 
                     mycom.CommandType = CommandType.StoredProcedure; 
                     //添加参数 
                     SqlParameter[] prams ={

                                new SqlParameter("@BookName", SqlDbType.VarChar, 50), 
                                new SqlParameter("@BookIntroduce", SqlDbType.VarChar, 50), 
                                new SqlParameter("@BookPrice", SqlDbType.Money, 8), 
                                new SqlParameter("@BookIsNew", SqlDbType.Char, 10), 
                                                           
                      }; 
                     //给参数赋值 
                     prams[0].Value = TextBox1.Text; 
                     prams[1].Value = TextBox2.Text; 
                     prams[2].Value = Convert.ToDecimal(TextBox3.Text); 
                     prams[3].Value = DropDownList1.SelectedValue.ToString(); 
                     foreach (SqlParameter parameter in prams) 
                     { 
                         mycom.Parameters.Add(parameter); 
                     } 
                     //执行sql语句 
                     mycom.ExecuteNonQuery(); 
                     myconn.Close(); 
                     BindData(); 
                     Response.Write("alert('添加成功!')"); 
                 } 
                 catch(Exception ex) 
                 { 
                    Response.Write(ex.Message.ToString()); 
                 } 
             } 
       }

  • 相关阅读:
    爬取动态html网页,requests+execjs
    pycharm2019.2一个奇怪的bugger,执行后输出内容被莫名处理
    博客园啥时候升级了,刚看到
    在浏览器的市场上,IE依然是放弃了,firefox还在继续~~
    jetbrain rider 逐渐完美了,微软要哭了么?
    div层的滑入滑出实例
    关于js的<、>、=、<=、>=的比较
    Jquery实现左右轮播效果
    Html5离线缓存详细讲解
    CANVAS画布与SVG的区别
  • 原文地址:https://www.cnblogs.com/a1656344531/p/2794016.html
Copyright © 2020-2023  润新知