PDA

View Full Version : سوال: مشکل در پاس دادنParameters ؟



mohsen_f_b
پنج شنبه 14 مرداد 1389, 14:26 عصر
سلام دوستان
دوستان کد زیر رو ببینید.


private string Insert()
{
string Query = "";
Query += "INSERT INTO [Person] ( [ID],[NAME],[FAMILY]) VALUES ( ";
Query += "'" + T1.Text + "',";
Query += "'" + T2.Text + "',";
Query += "'" + T3.Text + "'";
Query += ") ";

return Query;
}
public bool Add()
{
return Command(this.Insert());
}
public bool Command(string Query)
{
SqlCommand Command = new SqlCommand();
SqlConnection Con = this.GetSqlConnection();
this.DBConnect(Con);

Command.Connection = Con;
Command.CommandText = Query;

if (Command.ExecuteNonQuery() > 0)
{
this.DBClose(Con);
return true;
}
else
{
this.DBClose(Con);
return false;
}
}

من قسمت Insert رو می خوام Parameters ی کنم.
یعنی



private string Insert()
{
string Query = "";
Query += "INSERT INTO [Person] ( [ID],[NAME],[FAMILY]) VALUES (@ID,@NAME,@FAMILY)";

return Query;
}
مشکلم اینجاست که چطوری پارامترها رو پر کنم.اینجا به مشکل بر خوردم که من می خوام یک Query بفرستم چطوری پارامترها را پر کنم و بفرستم؟

باتشکر

Ali_M.Eghbaldar
پنج شنبه 14 مرداد 1389, 14:52 عصر
سلام
اینو ببین:


SqlCommand command = new SqlCommand();
command.CommandText = "SELECT * FROM Product WHERE Product.ID=@PROD_ID";
command.Parameters.Add(new SqlParameter("@PROD_ID", 100));

// Execute the SQL Server command...
SqlDataReader reader = command.ExecuteReader();
DataTable tblProducts = new DataTable();
tblProducts.Load(reader);


موفق باشی :لبخندساده:

mohsen_f_b
پنج شنبه 14 مرداد 1389, 17:18 عصر
دوست عزیز متشکر از پاسخ شما
چطوری می تونم برای اعمال به تابع مورد نظر پاس بدم؟
منظورم اینه که توی کد بالا که گذاشتم ببینید من یک قسمت Query رو آماده می کنم و میفرستم به قسمت دیگه تا به بانک اعمال بشه .حالا چطوری با این کدی که دادین به تابع(قسمت)مورد نظر بفرستم تا به بانک اعمال بشه؟می شه SqlDataReader رو به عنوان یک Query بفرستیم؟

باتشکر

Ali_M.Eghbaldar
پنج شنبه 14 مرداد 1389, 23:52 عصر
سلام
خواهش می کنم
خوب متوجه نشدم یعنی می خواین از StoreProcedure خود بانک استفاده کنی؟ :افسرده:

mohsen_f_b
جمعه 15 مرداد 1389, 10:31 صبح
سلام
دوست عزیز متشکرم که وقت می زاری و به من کمک می کنی.
ببینید من در یک قسمت یک Query درست می کنم.و در این قسمت هیچ کاری برای اتصال به بانک و از اینجور چیزا ندارم.ودر قسمتی دیگر کدی وجود داره که ارتباط با بانک و اعمال این Query به بانک رو انجام می ده.من در قسمت Query می خوام از Parameters استفاده کنم و Query رو بسازم و یک رشه داشته باشم و به ان قسمت مربوط به بانک بفرستم تا اطلاعات در بانک ثبت بشه.
کدی که گذاشتم رو ببینید فکر کنم متوجه بشین که منظورم چیه.
باتشکر

اوبالیت به بو
جمعه 15 مرداد 1389, 16:03 عصر
سلام

بعد از 2 روز دنبال كردن اين تايپيك فكر كنم بازم متوجه نشده باشم منظورتون چيه. ولي در كل...

شما در تابع Insert مي خوايد يه دستور SQL بسازيد و بهش پارامتر بديد. خوب دوست من شما بايد توجه كني كه با استفاده از خروجي string اين كار اصلا نميشه و درست هم نيست.

شما يك شي داري به اسم SqlCommand كه مي تونه اين Query رو در خودش نگه داره. شما تابع مورد نظر رو به اين صورت تغيير بده:

private SqlCommand Insert(int ID,string Name,string Family)
{
SqlCommand Cmd=new SqlCommand();
Cmd.CommandType = CommandType.Text;
Cmd.CommandText="Insert INTO Table (ID,Name,Family) VALUES (@ID,@Name,@Family)";

Cmd.Parameters.Clear()
Cmd.Parameters.AddWithValue("@ID",ID);
Cmd.Parameters.AddWithValue("@Name",Name);
Cmd.Parameters.AddWithValue("@Family",Family);

return (Cmd);
}

حالا مقدار خروجي اين تابع رو به متد اصلي يا عضو اصلي برنامت كه قراره كار كنه رو پاس بده.

rozegar21
جمعه 15 مرداد 1389, 19:39 عصر
منم مشکل توی پر کردن پارامتر دارم اما نه با sqlcomand بلکه من دارم از sqldataAdapter استفاده میکنم اما به اون روشی که توی اسکیول کامند پارامتر اضافه میکردم بلدم توی این روش بلد نیستم کسی میتونه کمکم کنه؟
با تشکر

mohsen_f_b
جمعه 15 مرداد 1389, 20:07 عصر
دوستان از همتون متشکرم.
obalitjoOon (http://www.barnamenevis.org/forum/member.php?u=47457) جان دمت گرم درست شد.
Ali_M.Eghbaldar (http://www.barnamenevis.org/forum/member.php?u=76909) جان از شماهم ممنونم.

باتشکر

rozegar21
جمعه 15 مرداد 1389, 21:30 عصر
کسی سوال منو جواب نمی ده

اوبالیت به بو
جمعه 15 مرداد 1389, 22:55 عصر
منم مشکل توی پر کردن پارامتر دارم اما نه با sqlcomand بلکه من دارم از sqldataAdapter استفاده میکنم اما به اون روشی که توی اسکیول کامند پارامتر اضافه میکردم بلدم توی این روش بلد نیستم کسی میتونه کمکم کنه؟

اين شي SqlCommand رو اينجوري به SqlDataAdapter مقداردهي كنيد:


SqlDataAdapter.SelectCommand = Cmd;
SqlDataAdapter.InsertCommand = Cmd;
.....

rozegar21
جمعه 15 مرداد 1389, 23:39 عصر
obalitjoOon (http://www.barnamenevis.org/forum/member.php?u=47457) عزیز ممنونم مشکلم حل شد کاش زودتر جواب میدادین:بامزه: