|
| نحوه اتصال به پایگاه داده و اجرای فرامین sql در برنامه نویسی دات نت (قسمت اول) |
نحوه اتصال به پایگاه داده و اجرای فرامین sql در دات نت (قسمت اول)(asp.net(c#), sql server)
بسمه تعالی
در این مقاله می خواهم نحوه اتصال به پایگاه داده SQL SERVER و اجرای دستورات sql را شرح بدهم. برای این کار یک مثال عملی را دنبال می کنیم. کلاس های زیر برای کار با پایگاه داده مورد نیاز است :
ابتدا یک صفحه aspx مانند زیر بسازید
<body> <form id="form1" runat="server"> <div style="direction: rtl;"> <div> <asp:Label runat="server" ID="lblMessage" /> </div> <div> <asp:GridView runat="server" ID="gvNames"> </asp:GridView> </div> <div> <asp:TextBox runat="server" ID="txtName" Text="" /> <asp:Button runat="server" ID="btnAdd" Text="افزودن" OnClick="btnAdd_Click" /> </div> </div> </form> </body>
سپس یک database به نام SampleDb بسازید و در آن جدول Names را ایجاد کنید. این جدول
دارای یک فیلد id از نوع int و Identity و یک فیلد به نام name و از نوع nvarchar(50)
می باشد. برای ایجاد این جدول، کد زیر را در Management Studio یا Query Analyzer اجرا
کنید.
SET ANSI_NULLS
ON
GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Names]( [id] [int] IDENTITY(1,1) NOT NULL, [name] [nvarchar](50) NOT NULL, CONSTRAINT [PK_Names] PRIMARY KEY CLUSTERED ( [id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
اتصال به پایگاه داده :
برای اتصال به پایگاه داده از کلاس SqlConnection استفاده می کنیم. این کلاس یک ویژگی
مهم به نام ConnectionString دارد که مشخصات سرور، نام پایگاه داده، نام کاربری، کلمه
عبور و خلاصه همه اطلاعات مورد نیاز برای وصل شدن به پایگاه داده باید در آن تعریف
شود. برای کسب اطلاعات بیشتر در مورد این ویژگی به msdn و همچنین سایت
www.connectionstrings.com مراجعه نمایید.
private readonly string cs = "server=.;Initial Catalog=SampleDb;Integrated Security=SSPI;Persist
Security Info=False;";
خواندن اطلاعات از پایگاه داده :
تابع RebindNames با استفاده از پروسیجر Names_GetAll همه رکورد های جدول Names را
می خواند و نمایش می دهد :
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[Names_GetAll] AS BEGIN
SELECT * FROM [Names] ORDER BY id;
END private readonly string cs = "server=.;Initial Catalog=SampleDb;Integrated Security=SSPI;Persist Security Info=False;";
private void RebindNames() { using (SqlConnection cnx = new SqlConnection(cs)) { using (SqlDataAdapter adapter = new SqlDataAdapter("Names_GetAll", cnx)) { using (DataTable dt = new DataTable()) { adapter.Fill(dt); gvNames.DataSource = dt; gvNames.DataBind(); } } } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { RebindNames(); } }
افزودن رکورد به جدول
برای افزودن یک نام به جدول از پروسیجر Names_Add استفاده می کنیم.
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[Names_Add] @Name nvarchar(50), @Id int OUTPUT AS BEGIN
INSERT INTO [Names] ([name]) VALUES (@Name);
SELECT @Id = SCOPE_IDENTITY();
END protected void btnAdd_Click(object sender, EventArgs e) { using (SqlConnection cnx = new SqlConnection(cs)) { using (SqlCommand cmd = new SqlCommand("Names_Add", cnx)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@Name", SqlDbType.NVarChar, 50).Value = txtName.Text; cmd.Parameters.Add("@Id", SqlDbType.Int).Direction = ParameterDirection.Output; cnx.Open(); cmd.ExecuteNonQuery(); lblMessage.Text = string.Format("نام <b>{0}</b> افزوده شد، کد : {1}", txtName.Text, cmd.Parameters["@Id"].Value); } } RebindNames(); }
نسخه ی قابل چاپ
ذخيره
ارسال برای
دوستان
مقاله های مربوط به اين گروه
|