PDA

View Full Version : ذخیره اطلاعات هر رکورد در آرایه



elham1611
پنج شنبه 13 تیر 1392, 01:23 صبح
من میخوام اطلاعات یک فیلد خاص از هر رکورد رو در یک آرایه ذخیره کنم هر کاری میکنم توی تمام آراریه فقط اطلاعات رکورد اول رو ذخیره میکنه.
چطوری بهش بگم توی هر آرایه اطلاعات یک رکورد رو بزاره؟

مثال :
فرض کنید چندین رکورد داریم که توی فیلد شهر نام هر شهر هستش
یک آرایه هم به تعدا رکوردها داریم
هدف اینه که توی هر آرایه نام هر یک از شهرها رو بزاره
بلد نیستم:ناراحت:

esafb52
پنج شنبه 13 تیر 1392, 01:37 صبح
فکر کنم باید از یه حلقه for استفاده کنی و به تعداد عناصرت طول حلقه for باشه و همیشه از طریقه عدد حقه for اندیس آرایه ات رو بدست بیاری و اطلاعات رو تو اون خونه از آرایه ذخیره کنی
یه چیزی مثل این

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication23
{
class Program
{
static void Main(string[] args)
{
string [] s=new string[3];
s[0] = "esa";
s[1] = "shahqole zadeh";
s[2] = "ok";
for (int i = 0; i < s.Length; i++)
{
Console.WriteLine(s[i]);
}
Console.ReadKey();
}
}
}

esafb52
پنج شنبه 13 تیر 1392, 01:39 صبح
یه مقدار از کدات رو بذار تا برات اصلح کنم اگه بتونم
یه چیزی مثل این برای من جواب داد شاید کدام خیلی جالب نباشه ولی کارتو راه بندازه
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace ConsoleApplication24
{
class Program
{

static void Main(string[] args)
{
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database1.mdf;Integrated Security=True;User Instance=True");
SqlCommand cmd = new SqlCommand();
SqlDataAdapter da = new SqlDataAdapter();
con.Open();
string s = "select * from table1";
cmd.CommandText = s;
cmd.Connection = con;
da.SelectCommand = cmd;
SqlDataReader reader;
reader = cmd.ExecuteReader();
string [] name= new string[100];
while (reader.Read())
{
for (int i = 0; i < 100; i++)
{
name[i] = reader[1].ToString();
Console.WriteLine(name[i]);
break;

}
}
con.Close();
Console.ReadKey();

}
}
}

elham1611
پنج شنبه 13 تیر 1392, 02:08 صبح
string[] array1 = new string[15];

SqlConnection reg1 = new SqlConnection(ConfigurationManager.ConnectionStrin gs["ConnectionString"].ToString());
reg1.Open();

SqlCommand select_email1 = new SqlCommand("SELECT * " +
"FROM [table] ");

select_email1.Connection = reg1;

SqlDataReader r = select_email1.ExecuteReader();
if (r.Read())//
{
for (int i = 1; i <= 10; i++)
{

array1[i] = r["code"].ToString();
Response.Write(array1[i] + " - ");
}
}

مشکل اینه که در تمام آرایه فقط همون رکورد اول رو قرار میده

esafb52
پنج شنبه 13 تیر 1392, 02:23 صبح
اینرو به حلقه for اضافه کن ببین چی میشه
break;

esafb52
پنج شنبه 13 تیر 1392, 02:39 صبح
string[] array1 = new string[15];
SqlConnection reg1 = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database1.mdf;Integrated Security=True;User Instance=True");
reg1.Open();
SqlCommand select_email1 = new SqlCommand("SELECT * " +
"FROM [table] ");
select_email1.Connection = reg1;
SqlDataReader r = select_email1.ExecuteReader();
while (r.Read())
{
for (int i = 0; i < 15; i++)
{
array1[i] = r["code"].ToString();
Console.WriteLine(array1[i]);
//Response.Write(array1[i] + " - ");
break;
}
}

مهرداد صفا
پنج شنبه 13 تیر 1392, 08:50 صبح
string[] array1 = new string[15];

SqlConnection reg1 = new SqlConnection(ConfigurationManager.ConnectionStrin gs["ConnectionString"].ToString());
reg1.Open();

SqlCommand select_email1 = new SqlCommand("SELECT * " +
"FROM [table] ");

select_email1.Connection = reg1;

SqlDataReader r = select_email1.ExecuteReader();
if (r.Read())//
{
for (int i = 1; i <= 10; i++)
{

array1[i] = r["code"].ToString();
Response.Write(array1[i] + " - ");
}
}

مشکل اینه که در تمام آرایه فقط همون رکورد اول رو قرار میده

باسلام.
شما یک رکورد را میخوانید و ده بار (به تعداد حلقه i) مقدار خوانده شده را در خانه های آرایه قرار می دهید! شبیه به این کد عمل کنید:

List<String> array1 =new List<String>();
//...
...

while(r.Read())
{
array1.Add(r["code"].ToString());
}...

benighted.boy
پنج شنبه 13 تیر 1392, 11:37 صبح
اگر رکوردهایی که میگی داخل یک DataTable قرار دارند پیش نهاد میکنم با حلقه Foreach روی سطر های درون DataTable راه برو و اون مقداری رو که میخوای رو درون آرایه بریز . فقط این نکته رو نباد فراموش کنی که قبل از شروع حلقه آرایه رو New کنی به طول سطرهایی که درون DataTable قرار دارند.اگر باز هم مشکل داشتین پیشنهاد میکنم کد تابع مورد نظرت رو اینجا بزاری زودتر به جواب میرسی