PDA

View Full Version : خواندن از دیتابیس mysql و ریختن محتویات آن در یک آرایه



tanha70
یک شنبه 20 اردیبهشت 1394, 13:30 عصر
سلام

دوستان من میخوام تا یک سری داده از دیتابیس انتخاب کنم و اونها رو در یک آرایه بریزم.
لطفا در این مورد راهنمایی بفرمایی.
یه مشکلم اینه که من اگر بخوام آرایه رو درست کنم، از کجا بدونم طول آرایه رو چند بذارم؟

Hamid2547
یک شنبه 20 اردیبهشت 1394, 14:20 عصر
سلام

دوستان من میخوام تا یک سری داده از دیتابیس انتخاب کنم و اونها رو در یک آرایه بریزم.
لطفا در این مورد راهنمایی بفرمایی.
یه مشکلم اینه که من اگر بخوام آرایه رو درست کنم، از کجا بدونم طول آرایه رو چند بذارم؟
بریزیدش توی لیست، و یا کالکشن هایی که طولشون قابل تغییر هست، مثل<List<T یا <Dictionary<T بسته به نیازتون.

tanha70
یک شنبه 20 اردیبهشت 1394, 15:52 عصر
این تابع درست هست؟



public List<string>[] SelectCampain()
{
"string query = "SELECT user FROM tbl_user group by user
//Create a list to store the result
List<string>[] listCampaigns = new List<string>[1];
listCampaigns[0] = new List<string>();


//Open connection
if (this.OpenConnection() == true)
{
//Create Command
MySqlCommand cmd = new MySqlCommand(query, connection);
//Create a data reader and Execute the command
MySqlDataReader dataReader = cmd.ExecuteReader();
//Read the data and store them in the list
while (dataReader.Read())
{
listCampaigns[0].Add(dataReader["user"].ToString());
}


//close Data Reader
dataReader.Close();


//close Connection
this.CloseConnection();


//return list to be displayed
return listCampaigns;
}
else
{
return listCampaigns;
}
}


در انتها میخوام نتایج این تابع رو در تابعی دیگه دریافت کنم و داخل یک آرایه رشته ای بریزم.
اینم ممنون میشم راهنمایی بفرمایید...

Hamid2547
یک شنبه 20 اردیبهشت 1394, 17:24 عصر
نه درست نیست، اینطوری لیست رو درست کن و بهش مقدار بده:

var listCampaigns = new List<string>();

while (dataReader.Read())
{
listCampaigns.Add(dataReader["user"].ToString());
}

در مورد نتیجه تابع هم مقدار نهاییش رو برگردونید، بعد جایی که تابع رو صدا زدید نسبتش بدید به یک لیست دیگه و روی اون لیست فور ایچ (foreach) کنید، اون براکت هم موقع تعریف تابع لازم نیست.