2023年6月21日发(作者:)
c#中如何执⾏存储过程 1 using System; 2 using c; 3 using entModel; 4 using ; 5 using g; 6 using ; 7 using ; 8 using ; 9 using ; 10
11 namespace 使⽤存储过程 12 { 13 using ent; 14 public partial class Form1 : Form 15 { 16 public Form1() 17 { 18 InitializeComponent(); 19 } 20 string connStr = "Data Source=.;Initial Catalog=MySchoolMoreData;Integrated Security=True"; 21
22 #region 调⽤没有参数的存储过程 +void btnNoPARAMAS_Click(object sender, EventArgs e) 23 /// 24 /// 调⽤没有参数的存储过程 25 /// 26 /// 27 /// 28 private void btnNoPARAMAS_Click(object sender, EventArgs e) 29 { 30 //SqlDataAdapter da = new SqlDataAdapter("select * from Student", connStr); 31 SqlDataAdapter da = new SqlDataAdapter("usp_getAllStuInfo", connStr); 32 DataTable dt = new DataTable(); 33 (dt); 34 urce = dt; 35 }
36 #endregion 37
38 #region 调⽤有输⼊参数的存储过程 +void btnHasParamas_Click(object sender, EventArgs e) 39 /// 40 /// 调⽤有输⼊参数的存储过程 41 /// 42 /// 43 /// 44 private void btnHasParamas_Click(object sender, EventArgs e) 45 { 46 SqlDataAdapter da = new SqlDataAdapter("usp_getStuInfoBySexAndCname", connStr); 47 //1.如果传⼊了存储过程,必须告诉服务器按存储过程进⾏处理,否则就会按sql语句进⾏处理 48 dType = Procedure; 49 //2.创建存储过程中所需要的参数,注意:名称必须与存储过程的参数名称对应 50 SqlParameter[] ps = {
51 new SqlParameter("@cname",),//Text获取显⽰在下拉列表控件中的⽂本值 52 new SqlParameter("@Sex",d?"男":"⼥") 53 }; 54 //3.将参数传递给服务器使⽤ 55 ge(ps); 56 DataTable dt = new DataTable(); 57 (dt); 58 urce = dt; 59 }
60 #endregion 61
62 #region 加载班级下拉列表数据和Dgv控件的分页数据 +void Form1_Load(object sender, EventArgs e) 63 /// 63 /// 64 /// 加载班级下拉列表数据和Dgv控件的分页数据 65 /// 66 /// 67 /// 68 private void Form1_Load(object sender, EventArgs e) 69 { 70 #region 加载下拉列表数据 71 SqlDataAdapter da = new SqlDataAdapter("select classid ,classname from classes where classid<@num", connStr); 72 SqlParameter p = new SqlParameter("@num", 15); 73 SqlParameter p2 = new SqlParameter("@num2", 150); 74 (p2); 75 (p); 76 DataTable dt = new DataTable(); 77 (dt); 78 yMember = "classname"; 79 ember = "classid"; 80 urce = dt; 81 #endregion 82
83 LoadDgvData(); 84 }
85 #endregion 86
87 int pageIndex = 1; //当前页索引 88 //int pageCount = 5; 89
90 #region 调⽤带输出参数和返回值的存储过程 +void btnOutput_Click(object sender, EventArgs e) 91 /// 92 /// 调⽤带输出参数和返回值的存储过程 93 /// 94 /// 95 /// 96 private void btnOutput_Click(object sender, EventArgs e) 97 { 98 SqlDataAdapter da = new SqlDataAdapter("usp_GetCountByCnameAndSex", connStr); 99 //1.如果传⼊了存储过程,必须告诉服务器按存储过程进⾏处理,否则就会按sql语句进⾏处理100 dType = Procedure;101 //2.创建存储过程中所需要的参数,注意:名称必须与存储过程的参数名称对应102 SqlParameter[] ps = {
103 new SqlParameter("@cname",),//Text获取显⽰在下拉列表控件中的⽂本值104 new SqlParameter("@Sex",d?"男":"⼥"),105 //创建输出参数的时候,没有必要赋值106 //创建⼀个输出参数,服务器最终将输出参数的值返回到这个参数对象的Value属性中107 new SqlParameter("@totalCount",100),108 new SqlParameter("@cnt",),109 new SqlParameter("@result",)110 };111 //3.⼀定要修改输出参数的⽅向,否则服务器会将所有参数当成输⼊参数进⾏处理,需要客户端传⼊值,如果没有就报错112 ps[0].Direction = ;//默认就是input,不设置也没有关系113 //ps[2].Direction = ;//设置参数的⽅向为输出参数114 //指定⽅向,是向服务器发送返回对应类型输出参数或者返回值的请求115 ps[3].Direction = ;116 ps[4].Direction = Value;117 //3.将参数传递给服务器使⽤118 ge(ps);119 DataTable dt = new DataTable();120 (dt);121 urce = dt;122 = "总⼈数是:" + ps[2].Value + ",指定性别的⼈数是:" + ps[3].Value + ",返回值是:" + ps[4].Value;123 }
124 #endregion125
126 #region 下⼀页 + void btnNext_Click(object sender, EventArgs e)127 /// 128 /// 下⼀页128 /// 下⼀页129 /// 130 /// 131 /// 132 private void btnNext_Click(object sender, EventArgs e)133 {134 if (ng() == tings["totalPageCount"])135 {136 ("没有下⼀页了");137 return;138 }139 pageIndex++;140 LoadDgvData();141 }
142 #endregion143
144 #region 获取分页数据 +void LoadDgvData()145 /// 146 /// 获取分页数据147 /// 148 private void LoadDgvData()149 {150 string count = tings["pageCount"];151 SqlParameter[] ps ={152 new SqlParameter("@pageIndex",pageIndex),153 new SqlParameter("@pageCount",count),154 new SqlParameter("@totalPageCount",)155 };156 ps[2].Direction = ;//修改参数的⽅法为输出参数--发送请求157 urce = eTable("usp_getPageData", Procedure, ps);158 tings["totalPageCount"] = ps[2].ng();159 }
160 #endregion161
162 #region 上⼀页 +void btnPre_Click(object sender, EventArgs e)163 /// 164 /// 上⼀页165 /// 166 /// 167 /// 168 private void btnPre_Click(object sender, EventArgs e)169 {170 if (pageIndex == 1)171 {172 ("没有上⼀页了");173 return;174 }175 pageIndex--;176 LoadDgvData();177 }
178 #endregion179 }180 }
2023年6月21日发(作者:)
c#中如何执⾏存储过程 1 using System; 2 using c; 3 using entModel; 4 using ; 5 using g; 6 using ; 7 using ; 8 using ; 9 using ; 10
11 namespace 使⽤存储过程 12 { 13 using ent; 14 public partial class Form1 : Form 15 { 16 public Form1() 17 { 18 InitializeComponent(); 19 } 20 string connStr = "Data Source=.;Initial Catalog=MySchoolMoreData;Integrated Security=True"; 21
22 #region 调⽤没有参数的存储过程 +void btnNoPARAMAS_Click(object sender, EventArgs e) 23 /// 24 /// 调⽤没有参数的存储过程 25 /// 26 /// 27 /// 28 private void btnNoPARAMAS_Click(object sender, EventArgs e) 29 { 30 //SqlDataAdapter da = new SqlDataAdapter("select * from Student", connStr); 31 SqlDataAdapter da = new SqlDataAdapter("usp_getAllStuInfo", connStr); 32 DataTable dt = new DataTable(); 33 (dt); 34 urce = dt; 35 }
36 #endregion 37
38 #region 调⽤有输⼊参数的存储过程 +void btnHasParamas_Click(object sender, EventArgs e) 39 /// 40 /// 调⽤有输⼊参数的存储过程 41 /// 42 /// 43 /// 44 private void btnHasParamas_Click(object sender, EventArgs e) 45 { 46 SqlDataAdapter da = new SqlDataAdapter("usp_getStuInfoBySexAndCname", connStr); 47 //1.如果传⼊了存储过程,必须告诉服务器按存储过程进⾏处理,否则就会按sql语句进⾏处理 48 dType = Procedure; 49 //2.创建存储过程中所需要的参数,注意:名称必须与存储过程的参数名称对应 50 SqlParameter[] ps = {
51 new SqlParameter("@cname",),//Text获取显⽰在下拉列表控件中的⽂本值 52 new SqlParameter("@Sex",d?"男":"⼥") 53 }; 54 //3.将参数传递给服务器使⽤ 55 ge(ps); 56 DataTable dt = new DataTable(); 57 (dt); 58 urce = dt; 59 }
60 #endregion 61
62 #region 加载班级下拉列表数据和Dgv控件的分页数据 +void Form1_Load(object sender, EventArgs e) 63 /// 63 /// 64 /// 加载班级下拉列表数据和Dgv控件的分页数据 65 /// 66 /// 67 /// 68 private void Form1_Load(object sender, EventArgs e) 69 { 70 #region 加载下拉列表数据 71 SqlDataAdapter da = new SqlDataAdapter("select classid ,classname from classes where classid<@num", connStr); 72 SqlParameter p = new SqlParameter("@num", 15); 73 SqlParameter p2 = new SqlParameter("@num2", 150); 74 (p2); 75 (p); 76 DataTable dt = new DataTable(); 77 (dt); 78 yMember = "classname"; 79 ember = "classid"; 80 urce = dt; 81 #endregion 82
83 LoadDgvData(); 84 }
85 #endregion 86
87 int pageIndex = 1; //当前页索引 88 //int pageCount = 5; 89
90 #region 调⽤带输出参数和返回值的存储过程 +void btnOutput_Click(object sender, EventArgs e) 91 /// 92 /// 调⽤带输出参数和返回值的存储过程 93 /// 94 /// 95 /// 96 private void btnOutput_Click(object sender, EventArgs e) 97 { 98 SqlDataAdapter da = new SqlDataAdapter("usp_GetCountByCnameAndSex", connStr); 99 //1.如果传⼊了存储过程,必须告诉服务器按存储过程进⾏处理,否则就会按sql语句进⾏处理100 dType = Procedure;101 //2.创建存储过程中所需要的参数,注意:名称必须与存储过程的参数名称对应102 SqlParameter[] ps = {
103 new SqlParameter("@cname",),//Text获取显⽰在下拉列表控件中的⽂本值104 new SqlParameter("@Sex",d?"男":"⼥"),105 //创建输出参数的时候,没有必要赋值106 //创建⼀个输出参数,服务器最终将输出参数的值返回到这个参数对象的Value属性中107 new SqlParameter("@totalCount",100),108 new SqlParameter("@cnt",),109 new SqlParameter("@result",)110 };111 //3.⼀定要修改输出参数的⽅向,否则服务器会将所有参数当成输⼊参数进⾏处理,需要客户端传⼊值,如果没有就报错112 ps[0].Direction = ;//默认就是input,不设置也没有关系113 //ps[2].Direction = ;//设置参数的⽅向为输出参数114 //指定⽅向,是向服务器发送返回对应类型输出参数或者返回值的请求115 ps[3].Direction = ;116 ps[4].Direction = Value;117 //3.将参数传递给服务器使⽤118 ge(ps);119 DataTable dt = new DataTable();120 (dt);121 urce = dt;122 = "总⼈数是:" + ps[2].Value + ",指定性别的⼈数是:" + ps[3].Value + ",返回值是:" + ps[4].Value;123 }
124 #endregion125
126 #region 下⼀页 + void btnNext_Click(object sender, EventArgs e)127 /// 128 /// 下⼀页128 /// 下⼀页129 /// 130 /// 131 /// 132 private void btnNext_Click(object sender, EventArgs e)133 {134 if (ng() == tings["totalPageCount"])135 {136 ("没有下⼀页了");137 return;138 }139 pageIndex++;140 LoadDgvData();141 }
142 #endregion143
144 #region 获取分页数据 +void LoadDgvData()145 /// 146 /// 获取分页数据147 /// 148 private void LoadDgvData()149 {150 string count = tings["pageCount"];151 SqlParameter[] ps ={152 new SqlParameter("@pageIndex",pageIndex),153 new SqlParameter("@pageCount",count),154 new SqlParameter("@totalPageCount",)155 };156 ps[2].Direction = ;//修改参数的⽅法为输出参数--发送请求157 urce = eTable("usp_getPageData", Procedure, ps);158 tings["totalPageCount"] = ps[2].ng();159 }
160 #endregion161
162 #region 上⼀页 +void btnPre_Click(object sender, EventArgs e)163 /// 164 /// 上⼀页165 /// 166 /// 167 /// 168 private void btnPre_Click(object sender, EventArgs e)169 {170 if (pageIndex == 1)171 {172 ("没有上⼀页了");173 return;174 }175 pageIndex--;176 LoadDgvData();177 }
178 #endregion179 }180 }
发布评论