使用C#調用SQL Server的存儲過程

Form上有一個button按鈕,name:buttonProcedureClient。

 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Data.SqlClient;

 

namespace Procedure_Client

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        private void buttonProcedureClient_Click(object sender, EventArgs e)

        {

            SqlConnection con = new SqlConnection("Data Source=liuxueqin;Initial Catalog=北風貿易;Integrated Security=True");

            con.Open();

 

            //調用procedure 1----------

            SqlCommand cmd = new SqlCommand();

            cmd.Connection = con;

            cmd.CommandType = CommandType.StoredProcedure;

            cmd.CommandText = "ChangeCityName";

            SqlParameter param1 = new SqlParameter("@City", SqlDbType.NVarChar, 15);

            SqlParameter param2 = new SqlParameter("@ID", SqlDbType.Int);

            cmd.Parameters.Add(param1);

            cmd.Parameters.Add(param2);

            cmd.Parameters[0].Value = "武漢市洪山區";

            cmd.Parameters[1].Value = 10248;

            cmd.ExecuteNonQuery();

 

            //調用procedure 2.1----------          

            cmd.CommandText = "GetAllInfo";

            cmd.Parameters.Clear();

            SqlDataReader reader = cmd.ExecuteReader();

            int i = 0;

            while (reader.Read() && i < 5)

            {

                object obj1 = reader[0];

                object obj2 = reader[1];

                MessageBox.Show(obj1.ToString() + "  " + obj2.ToString(), "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

                i++;

            }

            reader.Close();

 

            //調用procedure 2.2----------

            cmd.CommandText = "GetAllInfoByID";

            //SqlParameter param3 = new SqlParameter("@ID", SqlDbType.Int); //a1

            SqlParameter param3 = new SqlParameter("@ID", 10249);   //b

            cmd.Parameters.Clear();

            cmd.Parameters.Add(param3);

            //cmd.Parameters[0].Value = 10249;         //a2  

            //以上a,b兩種方式都可行

 

            //兩種調用方式1.SqlCommand和SqlDataReader 2.SqlDataAdapter和DataSet

//reader = cmd.ExecuteReader(); 

            //while (reader.Read())

            //{

            //    int col = reader.FieldCount;

            //    object obj1 = reader[0];

            //    object obj2 = reader[1];

            //    MessageBox.Show(obj1.ToString() + "  " + obj2.ToString(), "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

            //}

            //reader.Close();

 

            SqlDataAdapter dataadapter = new SqlDataAdapter(cmd);

            DataSet dataset = new DataSet();

            dataadapter.Fill(dataset);

            foreach (DataRow datarow in dataset.Tables[0].Rows)

            {

                for (int col = 0; col < dataset.Tables[0].Columns.Count; col++ )

                {

                    object obj = datarow[col];

                    MessageBox.Show(obj.ToString() , "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

                }

            }

 

            //調用procedure 3----------

            cmd.CommandText = "GetCityName";

            cmd.Parameters.Clear();

            SqlParameter param4 = new SqlParameter("@ID",SqlDbType.Int);

            SqlParameter param5 = new SqlParameter("@City", SqlDbType.NVarChar, 15);//傳入參數可以不指定長度,直接給值,但傳出的必須指定長度

            cmd.Parameters.Add(param4);

            param5.Direction = ParameterDirection.Output;

            cmd.Parameters.Add(param5);

            cmd.Parameters["@ID"].Value = 10249;

            cmd.ExecuteScalar();

            string city =  (cmd.Parameters["@City"].Value).ToString(); 

 

            //調用procedure 4.1----------

            cmd.CommandText = "GetRow";

            cmd.Parameters.Clear();

            SqlDataReader reader1 = cmd.ExecuteReader();  

            while (reader1.Read() )

            {

                object obj1 = reader1[0];

                object obj2 = reader1[1];

                MessageBox.Show(obj1.ToString() + "  " + obj2.ToString(), "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);               

            }

            reader1.Close();

 

            //調用procedure 4.2----------

            cmd.CommandText = "GetMultipleRow";

            cmd.Parameters.Clear();

            SqlDataReader reader1 = cmd.ExecuteReader();

            while (reader1.Read())

            {

                object obj1 = reader1[0];

                object obj2 = reader1[1];

                MessageBox.Show(obj1.ToString() + "  " + obj2.ToString(), "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

            }

            reader1.Close();

        }

    }

}

文章出處:http://www.diybl.com/course/4_webprogram/asp.net/asp_netshl/2008422/111113.html

發佈了28 篇原創文章 · 獲贊 3 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章