现在的位置: 首页 > 综合 > 正文

C#调用SQL Server存储过程简单实例

2018年06月07日 ⁄ 综合 ⁄ 共 3665字 ⁄ 字号 评论关闭
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace StoreTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btn_StoreInvoke_Click(object sender, EventArgs e)
        {
            string conn = "server=.;database=TESTSD;uid=sa;pwd=j6394126";
            SqlConnection SqlConnection = new SqlConnection(conn);
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = SqlConnection;//设定sql连接
            cmd.CommandText = "getAllData";//设置调用存储过程的名字
            cmd.CommandType = CommandType.StoredProcedure;//指定执行语句为存储过程
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet();
            da.Fill(ds);//填充dataset
            this.dgv_StoreView.DataSource = ds.Tables[0];
            //dgv_StoreView.DataBind(); 这个是asp.net才需要添加这句,winform设置数据源后就行了,不用再进行绑定
        }

        private void btn_StoreNoInOutParam_Click(object sender, EventArgs e)
        {
            string conn = "server=.;database=TESTSD;uid=sa;pwd=j6394126";
            SqlConnection SqlConn = new SqlConnection(conn);
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = SqlConn;
            cmd.CommandText = "InsertInfo";
            cmd.CommandType = CommandType.StoredProcedure;
            SqlConn.Open();
            this.txt_StoreNoInOut.Text = "执行存储过程影响了:"+cmd.ExecuteNonQuery().ToString()+"行";
            SqlConn.Close();

        }

        private void btn_Test3_Click(object sender, EventArgs e)
        {
            string conn = "server=.;database=TESTSD;uid=sa;pwd=j6394126";
            SqlConnection SqlConn = new SqlConnection(conn);
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = SqlConn;
            cmd.CommandText = "InOutTest";
            cmd.CommandType = CommandType.StoredProcedure;//设置使用存储过程

            cmd.Parameters.Add("@studentId", SqlDbType.VarChar);//设置默认的输入参数值
            cmd.Parameters.Add("@studentName", SqlDbType.VarChar, 50);//设置默认的输出参数,否则默认的Size为0
            cmd.Parameters.Add("@studentClass", SqlDbType.VarChar, 50);//设置默认的输出参数,否则默认的Size为0
            cmd.Parameters.Add("@studentScores", SqlDbType.Int);//设置默认的输出参数,否则默认的Size为0
            cmd.Parameters.Add("@rowCount", SqlDbType.Int);//设置默认的输出参数,否则默认的Size为0

            cmd.Parameters["@studentId"].Value = 2;//为默认参数赋值
            cmd.Parameters["@studentName"].Direction = ParameterDirection.Output;//设置参数为输出参数,否则默认情况为输入参数
            cmd.Parameters["@studentClass"].Direction = ParameterDirection.Output;//设置参数为输出参数,否则默认情况为输入参数
            cmd.Parameters["@studentScores"].Direction = ParameterDirection.Output;//设置参数为输出参数,否则默认情况为输入参数
            cmd.Parameters["@rowCount"].Direction = ParameterDirection.ReturnValue;//设置为返回值操作

            //以下注释掉的也是一种方式,任选一种

            //IDataParameter[] parameters ={
                                        
            //                            new SqlParameter("@studentId",SqlDbType.VarChar),
            //                            new SqlParameter("@studentName",SqlDbType.VarChar,50),
            //                            new SqlParameter("@studentClass", SqlDbType.VarChar, 50),
            //                            new SqlParameter("@studentScores",SqlDbType.Int),
            //                            new SqlParameter("@rowCount", SqlDbType.Int)
                                        
            //                            };
            //cmd.Parameters.Add(parameters[0]);
            //cmd.Parameters.Add(parameters[1]);
            //cmd.Parameters.Add(parameters[2]);
            //cmd.Parameters.Add(parameters[3]);
            //cmd.Parameters.Add(parameters[4]); 

            //parameters[0].Value = 2;
            //parameters[1].Direction = ParameterDirection.Output;//设置参数为输出参数,否则默认情况为输入参数
            //parameters[2].Direction = ParameterDirection.Output;//设置参数为输出参数,否则默认情况为输入参数
            //parameters[3].Direction = ParameterDirection.Output;//设置参数为输出参数,否则默认情况为输入参数
            //parameters[4].Direction = ParameterDirection.ReturnValue;//设置为返回值操作


           

            SqlConn.Open();
            cmd.ExecuteNonQuery();
            this.txt_name.Text = cmd.Parameters["@studentName"].Value.ToString();//获取Id为3的名字
            this.txt_Class.Text = cmd.Parameters["@studentClass"].Value.ToString();//获取Id为3的班级
            this.txt_Socres.Text = cmd.Parameters["@studentScores"].Value.ToString() + "-" + "影响了:" +
                                   cmd.Parameters["@rowCount"].Value.ToString() + "行";//获取Id为3的分数

            //this.txt_name.Text = parameters[1].Value.ToString();//获取Id为3的名字
            //this.txt_Class.Text = parameters[2].Value.ToString();//获取Id为3的班级
            //this.txt_Socres.Text = parameters[3].Value.ToString() + "-" + "影响了:" +
            //                       parameters[4].Value.ToString() + "行";//获取Id为3的分数
            SqlConn.Close();
        }


    }
}

【上篇】
【下篇】

抱歉!评论已关闭.