PDA

View Full Version : سوال: نمایش اطلاعات در textbox برای ویرایش



prinium
چهارشنبه 24 شهریور 1389, 11:02 صبح
با سلام

چطور میتونم با استفاده از TableRow اطلاعات یک رکورد رو از یک جدول در DataSet بگیرم و برای ویرایش در textboxها بریزم، یعنی textboxهام رو پر کنم.

قبلا از کد زیر استفاده می کردم ولی حالا از TableAdapter استفاده میکنم و درDataSet تو یک جدول Query ایجاد میکنم.به همین دلیل کد زیر دیگه جواب نمیده.ممنون میشم راهنماییم کنید.



string selectSQL = "select * from author WHERE authorID LIKE @authorID";
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=bookbank;Integrated Security=True");
SqlCommand cmd = new SqlCommand(selectSQL, con);
cmd.Parameters.AddWithValue("@authorID", Convert.ToInt32(lblAuthorID.Text));
SqlDataReader reader;
con.Open();
reader = cmd.ExecuteReader();
reader.Read();
txtAuthID.Text = reader["authorID"].ToString();
txtAuthName.Text = reader["authorName"].ToString();
txtTel.Text = reader["tel"].ToString();
txtAddress.Text = reader["address"].ToString();
reader.Close();
con.Close();

اوبالیت به بو
چهارشنبه 24 شهریور 1389, 12:36 عصر
سلام
شما با Reader مي خواهيد بخونيد يا با DataSet؟
و يه نكته ريز ديگه دستور reader.Read() رو به صورت يك بلاك if بنويسيد.

prinium
چهارشنبه 24 شهریور 1389, 12:55 عصر
قبلا با reader میخوندم ، ولی آلان که میخوام با table adapter کار کنم اصلا نمیدونم باید چه کار کنم .

کد زیر همین چیزیه که من می خوام ولی با VB هست.به C# تبدیل کردم ولی Rows(0)رو error میگیرد.لطفا راهنمایی کنید.



Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Adp As New DataSet1TableAdapters.booksTableAdapter
Dim DRow As DataSet1.booksRow
Dim Ds As New DataSet1
Adp.Fill(Ds.books)
If Ds.books.Rows.Count > 0 Then
DRow = Ds.books.Rows(0)
TextBox1.Text = DRow.bookName
End If
End Sub
End Class


C# :


partial class _Default : System.Web.UI.Page
{

protected void Button1_Click(object sender, System.EventArgs e)
{
DataSet1TableAdapters.booksTableAdapter Adp = new DataSet1TableAdapters.booksTableAdapter();
DataSet1.booksRow DRow = default(DataSet1.booksRow);
DataSet1 Ds = new DataSet1();

Adp.Fill(Ds.books);
if (Ds.books.Rows.Count > 0) {
DRow = Ds.books.Rows(0);
TextBox1.Text = DRow.bookName;
}
}
}


اینم error ای که برای Rows(0) میگیره :Non-invocable member 'System.Data.DataTable.Rows' cannot be used like a method.

اوبالیت به بو
چهارشنبه 24 شهریور 1389, 13:27 عصر
سلام


SqlConnection Conn=new SqlConnection(ConnectionString);
SqlCommand Cmd = new Sqlcommand (Conn, Select Command);
SqlDataAdapter SDA = new SqlDataAdapter();
DataSet DS = new DataSet();
SDA.SelectCommand = Cmd;
Conn.open();
SDA.Fill(DS);
Conn.Close()l
if(ds.Table[0].Rows.Count>0){
DataRow drTable = DS.table[0].Rows[0];

txtName.text=drTable["Name"].ToString();
txtAddress.Text=drTable["Address"].ToString();
}

prinium
چهارشنبه 24 شهریور 1389, 14:14 عصر
ممنون از پاسختون ولی باز هم Rows رو error میگیره :
'bookDataSet.authorRow' does not contain a definition for 'Rows' and no extension method 'Rows' accepting a first argument of type 'bookDataSet.authorRow' could be found (are you missing a using directive or an assembly reference?)



if (Ds.author[0].Rows.Count > 0)
{
DataRow drTable = Ds.author[0].Rows[0];
txtAuthorName.Text = drTable["authorName"].ToString();
txtAddress.Text = drTable["Address"].ToString();
}