您的位置:首页 > 数据库

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

2013-06-13 13:17 295 查看
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();
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C# ADO.NET 存储过程