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(); } } }