PDA

View Full Version : مبتدی: خواندن فیلد از دیتابیس و ریختن در آرایه



aliblue
جمعه 14 مهر 1391, 10:46 صبح
با سلام.من مثلا یه دستور select دارم که مقدار یک فیلد رو از تعدادی رکورد جدول استخراج میکنه.مثلا شماره دانشجویی کسانی که اول نام آن ها الف هست.
سپس میخواهم در سی شارپ این مقادیر رو در یک آرایه قرار بدم.برای این کار باید چه کدی بنویسم؟طول آرایه معلوم نیست.(یعنی معلوم نیست نام چند دانشجو با الف شروع میشود)

Y_Safaiee
جمعه 14 مهر 1391, 11:16 صبح
با سلام

راحتترین کار اینه که جواب دستور sql رو به یک Datatable پاس بدی بعد بیای آرایتو برابر با تعداد سطرهای DataTable کنی

موفق باشی
بایت بایت

aliblue
جمعه 14 مهر 1391, 11:27 صبح
با چه دستوری توی sql میتونم تعداد رکوردهای انتخاب شده رو هم برگردونم؟

Y_Safaiee
جمعه 14 مهر 1391, 11:48 صبح
با سلام مجدد

راه اول :



SqlConnection cnn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database1.mdf;Integrated Security=True;User Instance=True");
SqlDataAdapter da;
DataTable dt = new DataTable();
da = new SqlDataAdapter("select * from list where name like '" + textBox1.Text + "%'", cnn);
da.Fill(dt);
MessageBox.Show(dt.Rows.Count);


راه دوم :



SqlConnection cnn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database1.mdf;Integrated Security=True;User Instance=True");
cnn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = cnn;
cmd.CommandText = "select count(*) from list where name like '" + textBox1.Text + "%'";
object cnt = cmd.ExecuteScalar();
if (cnt != null)
{
//کد ساخت آرایه
}
else MessageBox.Show("No Record");


موفق باشی
بایت بایت

itsoitso2
دوشنبه 17 تیر 1392, 18:52 عصر
سلام دوست عزیز ببخشید من برناممو دارم از accass استخراج میکنم. برنامه زیر که مینویسم روقسمت getvalue که میرسه میگه هیچ اطلاعاتی در جدول وجود نداره !!!!!!!!!!نمیفهمم چشه؟؟؟؟؟؟؟؟؟؟

OleDbConnection con = newOleDbConnection();
con.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;" +
@"Data source=d:\database1.accdb";

con.Open();
OleDbCommand cmd = newOleDbCommand("select * from table8 ", con);

cmd.Connection = con;
OleDbDataReader dr = cmd.ExecuteReader();
int i=0,k=0;
string[,] get = newstring[5,14];
for(k=0;k<=14;k++)
while(i<6)//dr.Read())


{
get[i,k]=dr.GetValue(k).ToString();
i++;
MessageBox.Show(get[i,k]);
}