PDA

View Full Version : مبتدی: دسترسی به مقدار یک فیلد خاص در Dataset



hadisalahi2
سه شنبه 13 بهمن 1388, 09:52 صبح
با سلام به همگی دوستان .
من با دستورات زیر رکورهایی رو از جدول میخونم و اونها رو درون یک Dataset میریزم.
حالا میخوام از اون دیتاست مقدار یک فیلدخاص رو بدست بیارم و همچنین میخوام این کار رو در یک حلقه تکرار انجام بدم.
به عنوان مثال این جدول دارای فیلدی به نام TestTime است که من میخوام مقدار تمام این رکورها با هم جمع بشه.



str_com = "select top " & number_azmoon.Text & " * from test where dars in (" & str_lessons & ") and type in (" & str_type & ") order by newid()"
cmd = New SqlCommand(str_com, con1)
Dim da As New SqlDataAdapter(cmd)
Dim ds As New DataSet
da.Fill(ds, "test")
DataList1.DataSource = ds.Tables("test")
Session("ds") = ds
DataList1.DataBind()

masoud180
سه شنبه 13 بهمن 1388, 12:29 عصر
ds.tables[0].rows[rowNumber][cellNumber].tostring

hadisalahi2
سه شنبه 13 بهمن 1388, 12:32 عصر
چطوری این رو توی حلقه بذارم و مقادیر تمام رکورها رو بخونم.
یعنی شرط و یا تعداد تکرار حلقه رو چه بنویسم

hadisalahi2
سه شنبه 13 بهمن 1388, 15:37 عصر
دوستان کسی جواب سوال ما رو نم دونه.
اصلا من من دنبال روشی هستم که بشه رکوردهای یک جدول رو داخل اون ریخت و جمع سطرهای یک ستون رو بدست آورد.
البته بدون دستور Sum و همچنین Datareader

A.S.Roma
سه شنبه 13 بهمن 1388, 16:23 عصر
به جای دیتاست از DataTable استفاده کنید ( اگر تنها یک جدول دارید )
از حلقه foreach استفاده کنید ...

hadisalahi2
سه شنبه 13 بهمن 1388, 16:45 عصر
میشه یک نمونه کد قرار بدید و نحوه انجام اون رو هم بگید؟ چون من خیلی تازه کارم
ممنون میشم.

A.S.Roma
چهارشنبه 14 بهمن 1388, 07:59 صبح
خدمت شما ...

البته به زبان C# ..

SqlConnection con = new SqlConnection();
con.ConnectionString = @"Data Source=...;Initial Catalog=...;Integrated Security=True";

SqlCommand cmd = new SqlCommand();
cmd.Connection = con;

cmd.CommandText = "SELECT * FROM Test";

SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;

DataTable dt = new DataTable();

con.Open();

da.Fill(dt);

con.Close();

int sum = 0;
foreach (DataRow row in dt.Rows)
{
sum += int.Parse(row["Number"].ToString());
}

hadisalahi2
چهارشنبه 14 بهمن 1388, 10:18 صبح
ممنون ولی میشه همون کد رو به ویژوال بیسیک تغییر بدید
من در قسمت For Each به مشکل برخورد کردم

A.S.Roma
چهارشنبه 14 بهمن 1388, 10:53 صبح
Dim con As New SqlConnection()
con.ConnectionString = "Data Source=...;Initial Catalog=...;Integrated Security=True"

Dim cmd As New SqlCommand()
cmd.Connection = con

cmd.CommandText = "SELECT * FROM Test"

Dim da As New SqlDataAdapter()
da.SelectCommand = cmd

Dim dt As New DataTable()

con.Open()

da.Fill(dt)

con.Close()

Dim sum As Integer = 0
For Each row As DataRow In dt.Rows
sum += Integer.Parse(row("Number").ToString())
Next