PDA

View Full Version : طرز استفاده از stored procdure در سی شارپ



noroozifar
سه شنبه 26 آبان 1388, 17:42 عصر
سلام
یک store procedure ساده بگید ..کد آن بذارید که در sql ایجادش کنم مثلا دستور insert را انجام بدهد .

حالا داخل سی شارپ کد های که باید بنویسم تا این پروسیجر عمل کنه به چه طریقه .... یعنی اطلاعت داخل مثلا دو textbox را بهش بدم خودش بقیه کارها را انجام بده .. و در جدول مورد نظر اطلاعات را ثبت کنه


با تشکر

unique1984
سه شنبه 26 آبان 1388, 18:13 عصر
سلام
ُSp


CREATE PROCEDURE [dbo].[InsertInTest]
@FCode int,
@FFName nvarchar(50),
@FLName nvarchar(50)
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRAN
INSERT INTO Test(FCode,FFname,FLname) VALUES (@FCode,@FFName,@FLName)
IF @@ERROR>0
ROLLBACK TRAN
ELSE
COMMIT TRAN
END
استفاده در C#‎


SqlConnection con = new SqlConnection("server=(local);database=DbTest;uid=;pwd=;trusted_c onnection=yes");
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
SqlDataAdapter da = new SqlDataAdapter(cmd);
cmd.CommandType = CommandType.StoredProcedure;
DataTable dt = new DataTable();
cmd.Parameters.AddWithValue("@FCode", int.parse(txtCode.text));
cmd.Parameters.AddWithValue("@FFName", txtName.text);
cmd.Parameters.AddWithValue("@FLName", txtLname.text);
con.Open();
cmd.CommandText = "InsertInTest";
da.Fill(dt);
con.Close();

ennovation
سه شنبه 26 آبان 1388, 18:20 عصر
CREATE PROCEDURE :


CREATE PROCEDURE [dbo].[CreateUser]
@LastName nvarchar(50),
@FirstName nvarchar(50)
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO Users
(
LastName,
FirstName
)
VALUES
(
@LastName,
@FirstName
)END
GO
C#‎‎ Code:


public void InsertToDataBank(string lastName, string firstName)
{
SqlDataAdapter adapter = new SqlDataAdapter();
SqlCommand command = new SqlCommand("CreateUser"); // CreateUser: Name of PROCEDURE
command.Connection = YourConnectionString;
command.Connection.Open();
command.CommandType = CommandType.StoredProcedure ;
command.Parameters.Add("@LastName", SqlDbType.NVarChar).Value = lastName;
command.Parameters.Add("@FirstName", SqlDbType.NVarChar).Value = firstName;
adapter.SelectCommand = command;
command.ExecuteNonQuery();
}

noroozifar
چهارشنبه 27 آبان 1388, 08:13 صبح
چه تفاوتی هست بین اینکه من از sqldbtype استفاده کنم یا به صورت ساده ؟

article
سه شنبه 07 اردیبهشت 1389, 16:27 عصر
طرز استفاده از stored procdure در سی شارپ
ببین آقای reza344 عزیر ابتدا باید پارامترها را تعریف کرده به صورت زیر که این کار را باید با کلیک بر روی نام پایگاه داده ایجاد شده و در قسمت store procedure کلیک راست کرده و گزینه new را انتخاب می کنیم
و دستورات زیر را متناسب با پارا متر هاا که داری تعریف می کنی
CREATE PROCEDURE [dbo].[InsertInTest]
@FCode int,
@FFName nvarchar(50),
@FLName nvarchar(50)
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRAN
INSERT INTO Test(FCode,FFname,FLname) VALUES (@FCode,@FFName,@FLName)
IF @@ERROR>0
ROLLBACK TRAN
ELSE
COMMIT TRAN
END

سپس در محیط دات نت کد های خود را به صورت زیر وازد میکنی با این تفاوت که جلوی cmd.CommandText = "InsertInTest";نام پروسیجر ذخیره شده را وارد می کنیم که در اینجا با سبز مشخص شده است که این نام زمانی که پزوسیجز را ایجاد می کنیم ابتدای پزوسیجر خواهد امد که به صورت ابی و بقیه دستورا را به صورت زیر می نویسی

SqlConnection con = new SqlConnection("server=(local);database=DbTest;uid=;pwd=;trusted_c onnection=yes");
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
SqlDataAdapter da = new SqlDataAdapter(cmd);
cmd.CommandType = CommandType.StoredProcedure;
DataTable dt = new DataTable();
cmd.Parameters.AddWithValue("@FCode", int.parse(txtCode.text));
cmd.Parameters.AddWithValue("@FFName", txtName.text);
cmd.Parameters.AddWithValue("@FLName", txtLname.text);
con.Open();
cmd.CommandText = "InsertInTest";
da.Fill(dt);
con.Close();

rozegar21
سه شنبه 26 مرداد 1389, 00:16 صبح
con = new SqlConnection(str);
//string query1 = "insert into ketab(name,nevisande,ghymat,tedad,nasher,tarjome,n obate_chap,goroh,adress) values(@name,@nevisande,@ghymat,@tedad,@nasher,@ta rjome,@nobate_chap,@goroh,@adress);SELECT SCOPE_IDENTITY() AS no_ketab";
con.Open();
SqlCommand cm = new SqlCommand();
cm.Connection = con;
SqlDataAdapter myadapter = new SqlDataAdapter(cm);
DataTable mytable = new DataTable();
cm.CommandText = "dbo.insertketab";
myadapter.Fill(mytable);

cm.CommandType = CommandType.StoredProcedure;
cm.Parameters.Add("@name", SqlDbType.NVarChar,50).Value = name.Text;
cm.Parameters.Add("@nevisande", SqlDbType.NVarChar,50).Value = nevisande.Text;
cm.Parameters.Add("@ghymat", SqlDbType.Decimal).Value =Convert.ToDecimal(ghymat.Text);
cm.Parameters.Add("@tedad", SqlDbType.Int).Value =Convert.ToInt32( tedad.Text);
cm.Parameters.Add("@nasher", SqlDbType.NVarChar,50).Value = nasher.Text;
cm.Parameters.Add("@tarjome", SqlDbType.NVarChar,50).Value = motearjem.Text;
cm.Parameters.Add("@nobate_chap", SqlDbType.Int).Value =Convert.ToInt32( nobate_chap.Text);
cm.Parameters.Add("@goroh", SqlDbType.NVarChar,50).Value =goroh1.SelectedValue;
cm.Parameters.Add("@adress", SqlDbType.NVarChar,50).Value =adres_img.Text;
//cm.ExecuteNonQuery();



سلام
توی دیتابس که اجراش میکنم مشکلی نداره ولی توکدنویسی
به من این پیغام رو بهم میده

Procedure or function 'insertketab' expects parameter '@name', which was not supplied.

saeed903
چهارشنبه 17 شهریور 1389, 12:30 عصر
sql server به حرف بزرگ و کوچک حساس هستش احتمالا در دیتابیس شما ستونی نام شما بصورت Name بوده و نه name و باید اسم ستونها رو با حفظ بزرگی و کوچکی دقیقاٌ در موقع استفاده از آنها بکار ببرید.

فانوس1
جمعه 05 دی 1393, 00:13 صبح
وقتی کدا مینویسم این ارور را میده:

Cannot open database "pezeshk" requested by the login. The login failed.
Login failed for user 'Asus-pc\asus'.
با دستور db.Pins(textBox1.Text, Convert.ToString(listBox4.SelectedItem), Convert.ToString(listBox1.SelectedItem), textBox4.Text);


dataGridView1.DataSource = db.sicktbls;
که مینویسم نوشتم اجرا هم میشه dataGradeview هم اونا نشون میده.
اما مشکل من اینه که فقط تو dataGradeview هست و هیچی تو اصل پایگاه داده ذخیره نمیشه.
ممنونمیشم اگه جواب بدید.

حسین.کاظمی
جمعه 05 دی 1393, 00:34 صبح
سلام
به این تاپیک سری بزنید یک نمونه برنامه در رابطه با این موضوع نوشتم و در اختیار شما دوستان گذاشتم و امیدوارم که مشکلتونو حل کرده باشم

دانلود نمونه برنامه (http://barnamenevis.org/showthread.php?276342-%D8%A7%D9%86%D8%AC%D8%A7%D9%85-%DA%A9%D8%A7%D8%B1%D9%87%D8%A7%DB%8C-Delete-Insert-Update-%D8%A8%D8%A7-Store-Procedure)

موفق باشی