ASP.NET2005
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

اتصال به پایگاه داده sql

اذهب الى الأسفل

اتصال به پایگاه داده sql Empty اتصال به پایگاه داده sql

پست  asie ahmadi السبت نوفمبر 14, 2009 12:51 pm

________________________________________
نحوه اتصال به پایگاه داده و اجرای فرامین sql در دات نت
(asp.net(c#), sql server)

بسمه تعالی
در این مقاله می خواهم نحوه اتصال به پایگاه داده SQL SERVER و اجرای دستورات sql را شرح بدهم. برای این کار یک مثال عملی را دنبال می کنیم.
کلاس های زیر برای کار با پایگاه داده مورد نیاز است :
• SqlConnection : از این کلاس برای اتصال به پایگاه داده استفاده می شود.
• SqlCommand : از این کلاس برای اجرای دستورات sql مانند select, insert, update, delete و اجرای stored procedure ها استفاده می شود.
• DataTable : با اجرای دستور select توسط SqlCommand، یک آرایه ای از سطر و ستون ها تولید می شود که برای ذخیره کردن آن، از این کلاس استفاده می شود.
• SqlDataAdapter : برای خواندن اطلاعات از پایگاه داده و ذخیره آن در DataTable از این کلاس استفاده می شود. این کلاس کاربردهای دیگری نیز د ارد.
مانندزیربسازید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="" />
&nbsp;&nbsp;&nbsp;
<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 و همچنین سایت http://www.connectionstring.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;";
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();
}

asie ahmadi
کاربر عادی
کاربر عادی

تعداد پستها : 16
تاريخ التسجيل : 2009-11-08

بازگشت به بالاي صفحه اذهب الى الأسفل

بازگشت به بالاي صفحه

- مواضيع مماثلة

 
صلاحيات هذا المنتدى:
شما نمي توانيد در اين بخش به موضوعها پاسخ دهيد