在C#中调用存储过程(WinForm)

来源:互联网 发布:win10软件注册表 编辑:程序博客网 时间:2024/05/21 22:53
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Data.SqlClient; //须引用此命名空间using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace testProc{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        //控件Button2个、TextBox2个、DataGridView1个        //分别命名为btnShow、btnLogin、txtUid、txtPwd、dgvDisplay        private void btnShow_Click(object sender, EventArgs e)        {//调用显示所有用户的存储过程spSelectAll            string cnnString = "server=.\\sqlexpress;database=testprocedure;integrated security=true";            SqlConnection cnn = new SqlConnection(cnnString);            cnn.Open();            SqlCommand cmd = new SqlCommand("spSelectAll ", cnn);            cmd.CommandType = CommandType.StoredProcedure;            SqlDataReader dr = cmd.ExecuteReader();            DataTable dt = new DataTable();            dt.Load(dr);            dgvDisplay.DataSource = dt;            cnn.Close();        }        private void btnLogin_Click(object sender, EventArgs e)        {//调用登录存储过程spLogin            string cnnString = @"server=.\sqlexpress;database=testprocedure;integrated security=true";            SqlConnection cnn = new SqlConnection(cnnString);            SqlCommand cmd = new SqlCommand("spLogin ", cnn);            cmd.CommandType = CommandType.StoredProcedure;            cmd.Parameters.Add("@user", SqlDbType.NVarChar, 20);            cmd.Parameters["@user"].Value = txtUid.Text;            cmd.Parameters.AddWithValue("@pass", txtPwd.Text);            cmd.Parameters.Add("@auth", SqlDbType.TinyInt, 2);            cmd.Parameters["@auth"].Direction = ParameterDirection.Output;            cmd.Parameters.Add("@returnValue", SqlDbType.SmallInt);            cmd.Parameters["@returnValue"].Direction = ParameterDirection.ReturnValue;            cnn.Open();            cmd.ExecuteNonQuery();            if (cmd.Parameters["@returnValue"].Value.ToString() == "1")            {                string auth=cmd.Parameters["@auth"].Value.ToString();//获得权限值并转换为字符串                //下面if语句也可以写一个控制函数,详见事务的使用示例及WinForm实现中的若干问题                 //cotrolMenu函数                if (auth == "2")                {                    //权限2的控制代码                }                else if (auth == "1")                {                    //权限1的控制代码                }                else                {                    //权限0的控制代码                }                MessageBox.Show("Success");            }            else            {                MessageBox.Show("Fail");            }        }    }}

在SQL Server中定义存储过程见上一篇。权限控制函数见cotrolMenu函数。

原创粉丝点击