C#和数据库访问技术总结(九)之实例

  

实例

履新记录

   
在本例子中,建立一个供用户输入学生学号和姓名的文本框和几独对许不同操作类型的更新信息按钮,当用户输入信息后单击相应的按钮则执行相应的操作。在斯实例中尚将触及到服务器信息认证的有关文化。

    (1)新建名也UpdateTest的Windows
Application应用程序,在默认的Forml.cs中上加2只Label控件,2只TextBox控件,3独Button控件,按说明4.7所出示设置这7个控件的属性。

表明4.7控件属性

控件类型                    ID属性                          Text属性

标签                         lblUserID                 学号:

标签                         lblUserName               姓名:

文本框                       txtUserlD

文本框                       txtUserName

按钮                         btnExecute1                拼接字符串

按钮                         btnExecute2                使用参数

按钮                         btnExecute3                使用存储过程

 

 

 

 

 

 

 

 

 

  (2)调整控件的职务(按照单人口爱好了)

   
(3)双击“拼接字符串”按钮,注册按钮btnExecute的按钮单击事件btnExecute1_Click,

    然后更切换至Form1.cs页面的“设计”视图,依次双击“使用参数”和“使用存储过程”按钮来报对应之按钮单击事件btnExecute2_Click和btnExecute3_Click。

   
(4)在Form1.cs文书中率先引入命名空间System.Data.SqlClient,然后上加一个名
CheckInfo的道,返回值为bool类型,代码如下:

 

bool CheckInfo()
{
  //判断学号是否输入
  if (this.txtUserID.Text.Trim() == "")
  {
    Alert("学号不完整");
    return false;
  }
  else if (this.txtUserName.Text.Trim() == "") //判断姓名是否输入
  {
    Alert("姓名不完整");
    return false;
  }
  //信息检查通过
  return true;
}

 

//其中,Alert是自定义的另外一个方法,用来弹出一个对话框,定义如下:
        void Alert(string message)
        {
            MessageBox.Show(null, message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }

        //在btnExecute1_Click中编写如下代码:
        private void btnExecute1_Click(object sender, EventArgs e)
        {
            //信息检查
            if(this.CheckInfo())
            {
                //取值
                string userId=this.txtUserID.Text.Trim();
                string userName=this.txtUserName.Text.Trim();
                //新建连接对象
                SqlConnection conn=new SqlConnection();
                conn.ConnectionString="Data Source=(local);Initial Catalog=Student;Integrated Security=SSPI";
                //拼接命令字符串
                string updateQuery="update StudentInfo set sName='"+userName+"'"+"where ID='"+userId+"’";
                //新建命令对象
                SqlCommand cmd=new SqlCommand(updateQuery,conn);
                conn.Open();
                 //保存执行结果
                int RecordsAffected=cmd.ExecuteNonQuery();
                conn.Close();
                //提示结果
                Alert("更新数据数为"+RecordsAffected);
            }
        }

        //在btnExecute2_Click中编写如下代码:
        private void btnExecute2_Click(object sender, EventArgs e)
        {
            //信息检查
            if(this.CheckInfo())
            {
                //取值
                string userId=this.txtUserID.Text.Trim();
                string userName=this.txtUserName.Text.Trim();
                //新建连接对象
                SqlConnection conn=new SqlConnection();
                conn.ConnectionString="Data Source=(local);Initial Catalog=Student;Integrated Security=SSPI";
                //拼接命令字符串
                string updateQuery="update StudentInfo set sName=@userName where ID=@userId";
                //新建命令对象
                SqlCommand cmd=new SqlCommand(updateQuery,conn);
                //添加参数
                cmd.Parameters.Add(new SqlParameter("@userName", userName));
                cmd.Parameters.Add(new SqlParameter("@userId", userId));
                conn.Open();
                //保存执行结果
                int RecordsAffected = cmd.ExecuteNonQuery();
                conn.Close();
                /*
                try
                {
                    conn.Open();
                    //保存执行结果
                    int RecordsAffected = cmd.ExecuteNonQuery();
                }
                catch (Exception err)
                {
                    MessageBox.Show(err.Message, "修改记录失败");
                }
                finally
                {
                    if (conn.State == ConnectionState.Open)
                    {
                        conn.Close();
                    }
                }*/
                //提示结果
                Alert("更新数据数为"+RecordsAffected);
            }
        }

        //在btnExecute3_Click中编写如下代码:
        private void btnExecute3_Click(object sender, EventArgs e)
        {
            //信息检查
            if (this.CheckInfo())
            {
                //取值
                string userId = this.txtUserID.Text.Trim();
                string userName = this.txtUserName.Text.Trim();
                //新建连接对象
                SqlConnection conn = new SqlConnection();
                conn.ConnectionString = "Data Source=(local);Initial Catalog=Student;Integrated Security=SSPI";
                //新建命令对象
                SqlCommand cmd = new SqlCommand("UpdateStudentInfo", conn);
                //指定命令类型为存储过程
                cmd.CommandType = CommandType.StoredProcedure;
                 //添加参数
                cmd.Parameters.Add(new SqlParameter("@userName", userName));
                cmd.Parameters.Add(new SqlParameter("@userId", userId));
                conn.Open();
                //保存执行结果
                int RecordsAffected = cmd.ExecuteNonQuery();
                conn.Close();
                //提示结果
                Alert("更新数据数为" + RecordsAffected);
            }
        }

  (9)在学号和姓名被分头输入信息之后,单击任意按钮即可测试创新结果。
  例如:

  分别输入学号”2007102001″和人名“某某”后单击任意按钮.

代码讲解
  以引入了System.Data.SqlClient命名空间之后,使用了SQL Server
.NET数据提供次对数据开展翻新。
  更新数据前使了CheckInfo方法对数码开展自我批评,查看用户是否以姓名和学号两单文本框中输入了实惠之音讯,如果两岸的输入信息还灵验,则该法返回true,否则回false,

  方法实现如下:  

          //判断学号是否输入
            if (this.txtUserID.Text.Trim() == "")
            {
                Alert("学号不完整");
                return false;
            }
            else if (this.txtUserName.Text.Trim() == "")  //判断姓名是否输入
            {
                Alert("姓名不完整");
                return false;
            }
            //信息检查通过
            return true;

  当用户输入的音信不正确时,Checklnfo将调用Alert方法显示提示信息对话框,

  Alert方法其实是固定MessageBox.Show方法的一些参数,利用其来弹来对话框,Alert方法实现非常简单,仅仅需要下面一句代码:  

MessageBox.Show(null,message,"信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

  其中,message是Alert方法接受的参数。

*  于3单按钮单击事件被,程序代码分别实现对应的多寡更新操作,这些操作前都进展了详尽的上书,这里不再赘言。*

 

相关文章