نحوه ارسال کوئری به گرید از طریق کد نویسی
Printable View
نحوه ارسال کوئری به گرید از طریق کد نویسی
سلام...این روش سنتی ado روش های بهتر و سریعتر هم هست مثلا EF
SqlConnection con=new SqlConnection("connectionstr");
string command = "select name,famil from stdtable";
SqlDataAdapter da=new SqlDataAdapter(command,con);
DataTable dt = new DataTable();
try
{
con.Open();
da.Fill(dt);
con.Close();
dataGridView2.DataSource = dt;
}
catch (Exception)
{
throw;
}
من کد رو این طوری نوشتم
string s = textBox1.Text;
Class1.con.Open();
Class1.com.Connection = Class1.con;
Class1.com.CommandText = "SELECT codeposti FROM [mobile_list] WHERE (city = '"+ s +"') GROUP BY codeposti ORDER BY codeposti";
OleDbDataAdapter da = new OleDbDataAdapter(Class1.com.ToString(), Class1.con);
System.Data.DataTable dt = new System.Data.DataTable();
da.Fill(dt);
Class1.con.Close();
dataGridView1.DataSource = dt;
این خطا رو میده Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.
الان به جای این که بریزم تو کامند ریختم تو یک متغیر رشته ای الان این خطا رو میده
No value given for one or more required parameters.
لازمه که قسمت شرط توسط کاربر پر بشه چی کار کنم
یکی جواب بده کارم گیره
سلام.
این سبک کوئری نوشتن سال هاست که منقرض شده و تعجب کردم از اینکه هنوزم از این روش ها استفاده میشه.
این مدل که شما کوئری نوشتی هم راحت قابل هــــــک شدن هست و هم اینکه ست کردن کوتیشن و دابل کوتیشن ها کار مشکلی هست. بهتره از پارامترها استفاده کنید:
روش خودتون :
Class1.com.CommandText = "SELECT codeposti FROM [mobile_list] WHERE (city = '" + s + "')" + " GROUP BY codeposti ORDER BY codeposti";
استفاده از پارامترها :
Class1.com.CommandText = "SELECT codeposti FROM [mobile_list] WHERE city = @city GROUP BY codeposti ORDER BY codeposti";
da.SelectCommand.Parameters.AddWithValue("@city", textBox1.Text.Trim());
توجه : اولین ورودی DataAdapter هم باید دستور sql شما باشه. یعنی اولین ورودی رو باید برایر دستور sql قرار بدید (آیا Class1.com.ToString همون کوئری sql شما هست؟؟؟!!!) :
OleDbDataAdapter da = new OleDbDataAdapter(Class1.com.ToString(), Class1.con);
ولی در کل برید سمت استفاده از Entity Framework . هم حجم کدنویسی کمتری خواهید داشت، هم دستتون بازتره و امکانات بیشتری در اختیار دارید و مهمتر از همه از شر DataReader و DataTable و ... خلاص میشید.
موفق باشید.