PDA

View Full Version : سوال: نحوه ذخیره یک دستور SQL در یک متغیر



night-wolf
چهارشنبه 13 آذر 1392, 20:49 عصر
با سلام

دوستان دستور sql من این هست

"select Date,Tell,ID from ketab where Username='"+Usernametextbox.text+"'and Password ='"+Passwordtextbox.text+"'"

در این کد من میخوام کلا این دستور رو در asp.net به زبان C#‎‎‎ در یک متغیر قرار بدم چطور مقدار دهیش کنم؟؟

چون اگه بخوام این کد رو بنویسم که باس تو دستور sqlcommand بنویسم و مقداردهی در داخل متغیر امکان نداره

درکل هدفم اینه که مقدار اون فیلدهای Date,Tell,ID در یک متغیر ذخیره و در session قرار بدم فقط تو مقداردهیش در متغیر موندم

در ضمن این روش با store procedure نیس کد داخل خود برنامه نوشتم ممنون میشم راهنمایی کنید :دی

ali.n93
شنبه 16 آذر 1392, 12:10 عصر
منظورتون رو درست متوجه نشدم. اول گفتید که کل دستور رو باید توی یه متغیر قرار بدید. بعد هدفتون چیز دیگه ای هستش
اما اگه مهم هدفتونه این روش رو پیشنهاد می کنم که این دستور رو داخل متغیر sqlcommand (مثلا cmd) بنویسید
select convert(nvarchar(max),[Date])+';'+convert(nvarchar(max),[Tell])+';'+convert(nvarchar(max),[ID]) from ketab
where Username='"+Usernametextbox.text+"'and Password ='"+Passwordtextbox.text+"'
بعدش با کد زیر مقدار برگشتی دستور select به صورت یه رشته داخل متغیر S ریخته میشه
string s = cmd.ExecuteScalar().ToString();
حالا کافیه سه قسمتی که لازم دارید رو با توابع رشته ای از هم جدا کنید

night-wolf
شنبه 16 آذر 1392, 13:29 عصر
منظورتون رو درست متوجه نشدم. اول گفتید که کل دستور رو باید توی یه متغیر قرار بدید. بعد هدفتون چیز دیگه ای هستش
اما اگه مهم هدفتونه این روش رو پیشنهاد می کنم که این دستور رو داخل متغیر sqlcommand (مثلا cmd) بنویسید
select convert(nvarchar(max),[Date])+';'+convert(nvarchar(max),[Tell])+';'+convert(nvarchar(max),[ID]) from ketab
where Username='"+Usernametextbox.text+"'and Password ='"+Passwordtextbox.text+"'
بعدش با کد زیر مقدار برگشتی دستور select به صورت یه رشته داخل متغیر S ریخته میشه
string s = cmd.ExecuteScalar().ToString();
حالا کافیه سه قسمتی که لازم دارید رو با توابع رشته ای از هم جدا کنید


دست گلتون درد نکنه

هدف من اینه که بیاد مقادیر 3تافیلد رو دربیاره و در یه متغیر بریزه که الان شما s قرار دادین حالا من اگه بیام s رو مساوی لیبل قرار بدم یعنی مقدار هر سه فیلد رو نشون میده ؟
ببین این کلا دستور من هست ببین چه ایرادی داره ؟


SqlConnection vasl = new SqlConnection("Data Source=(local);Initial Catalog=Daneshgah;Integrated Security=True");
SqlCommand dastoor = new SqlCommand("select FName,LName from Daneshju where Username= '"+UsernameTextBox.Text+"'and Password='"+PasswordTextBox.Text+"'",vasl);
string s = (string)dastoor.ExecuteScalar();
SqlDataReader ds = dastoor.ExecuteReader();
vasl.Open();
if (ds.Read())
{
this.Title = s;
vasl.Close();
ds.Close();
}
else
{
this.Title = "Error";
}

من اینجا به عنوان مثال گفتم اگه پسورد درست باشه بیاد و مقادیر مثلا 2 فیلد نام و نام خانوادگی رو در title نشون بده اما اررور میده به کد string s = (string)dastoor.ExecuteScalar();