PDA

View Full Version : سوال: مشکل کدنویسی برای حذف چند آیتم



veniz2008
جمعه 25 تیر 1389, 11:13 صبح
سلام،من 2 تا سوال دارم که ممنون میشم مثل همیشه دوستان جواب کامل بدن،یکی ارتباط دادن کنترل login و دیتابیس sqlکه خودم ساختم برای شناسایی کاربر رو کامل بگید چون واقعا مشکل جدی باهاش دارم و یکی هم اینکه من از کد زیر برای حذف چندتا آیتم در visual studio میخوام استفاده کنم،اینو بگم که برنامه بدون error اجرا میشه ولی موقعی که دکمه حذف رو میزنم به این خط کد da.Fill(ds, "dars2") اشاره میکنه و این پیغام خطا نمایش داده میشه : incorrect syntax near "*"
لطفا راهنمایی کنید و کد صحیح رو بهم بگید.تشکر


using System.Data.SqlClient;



public partial class hazf : System.Web.UI.Page

{

DataSet ds = new DataSet();

string strsql;

string strcon;

SqlDataAdapter da = new SqlDataAdapter();

SqlConnection con = new SqlConnection();



protected void Page_Load(object sender, EventArgs e)

{



}

protected void Button1_Click(object sender, EventArgs e)

{

strcon = ("Data Source = .\\sqlexpress;Initial Catalog=dars2;Integrated Security=True");

con = new SqlConnection(strcon);

con.Open();

strsql = "DELETE * From dars2 where name_d =" + "'" + TextBox1.Text + "'";

da = new SqlDataAdapter(strsql, con);

da.Fill(ds, "dars2");


ds.Clear();

Hsn.Zare
جمعه 25 تیر 1389, 11:57 صبح
سلام . دوست عزیز دستور Delete رو جرا به همراه دیتاست استفاده کردی؟
دیتاست کنترل سنگینیه و باید به جا ازش استفاده کنی نمی گم نمیشه با دیتاست حذف کرد اما با این کاری که شما کردی نمی شه نه
شما برای اجرای دستوراتی مانند درج و ویرایش که خروجی بر نمی گردونه همیشه از همون SQlCommand تنها استفاده کن . پس از مقدار دادن کامل خاصیت هاش (Connection , CommandText ,..) اتصالت رو باز کن و متد ExecuteNoneQuery رو اجرا کن. این باعث می شه که دستورت بدون هیچ خروجی اجرا بشه . خروجی منظور Result ای است که از اس کیو ال بر می گرده و پارامترهای از نوع خروجی و .... شامل اون نمی شه

veniz2008
جمعه 25 تیر 1389, 12:34 عصر
دوست گرامی،من یه تازه کارم و دستوری رو که گفتی تا الان باهش کار نکردم اگه ممکنه دستورات رو بطور کامل بذار تا به برنامم اضافه کنم،تشکر فراوان

rajabpour
جمعه 25 تیر 1389, 15:59 عصر
سلام،من 2 تا سوال دارم که ممنون میشم مثل همیشه دوستان جواب کامل بدن،یکی ارتباط دادن کنترل login و دیتابیس sqlکه خودم ساختم برای شناسایی کاربر رو کامل بگید چون واقعا مشکل جدی باهاش دارم و یکی هم اینکه من از کد زیر برای حذف چندتا آیتم در visual studio میخوام استفاده کنم،اینو بگم که برنامه بدون error اجرا میشه ولی موقعی که دکمه حذف رو میزنم به این خط کد da.Fill(ds, "dars2") اشاره میکنه و این پیغام خطا نمایش داده میشه : incorrect syntax near "*"
لطفا راهنمایی کنید و کد صحیح رو بهم بگید.تشکر






دوست عزیز:
اول: از ا.نجایی که DELETE یک رکورد رو حذف میکنه نیازی به استفاده از * نیست،



DELETE
FROM dars2
WHERE name_d = 'کلید'


دوم: پیشنهاد میکنم برای انجام اعمال Insert,Update,Delete,Select... از SPها استفاده کنید.(برای جلوگیری از sqlinjection)

rajabpour
جمعه 25 تیر 1389, 16:15 عصر
دوست گرامی،من یه تازه کارم و دستوری رو که گفتی تا الان باهش کار نکردم اگه ممکنه دستورات رو بطور کامل بذار تا به برنامم اضافه کنم،تشکر فراوان






myConnection = New SqlConnection("Data Source = .\\sqlexpress;Initial Catalog=dars2;Integrated Security=True")
myConnection.Open()
myCommand = New SqlCommand("DELETE FROM(dars2)WHERE name_d = '' ", myConnection)
myCommand.ExecuteNonQuery()
myConnection.Close()




لینک زیر هم توضیحات خوبی داره.
http://www.startvbdotnet.com/aspsite/ado/sql.aspx

veniz2008
جمعه 25 تیر 1389, 17:06 عصر
آقا تشکر،* رو که برداشتم مشکل حل شد،خداییش عالی توضیح دادی،یه سوال دیگه هم داشتم حالا میخوام واسه صفحه اول سایتم user , pass بذارم،دستوری که باهاش بتونم textbox هامو چک کنم تایپ میکنم ولی هیچ عملی رو انجام نمیده،لطف کن یه دستور ساده واسه چک کردن texboxهایی که به فرم اضافه کردم پیشنهاد کن،خداییش هرچی با کنترل login ور رفتم نتونستم که با جدول خودم در sql ربطش بدم."خیلی آقایی"