none
請問要如何把資料表的內容送到textbox裡? RRS feed

  • 問題

  •  

    SqlConnection conn = new SqlConnection("連到資料庫");
    conn.Open();

    SqlCommand sqlcmd = new SqlCommand("下SQL語法"conn);


    SqlDataAdapter da = new SqlDataAdapter(sqlcmd);
    DataSet ds = new DataSet();
    da.Fill(ds, "DEB007");
    dataGridView2.DataSource = ds.Tables["DEB007"];

     

    以上是把資料表的內容傳到datagridview裡面沒錯

    而且因為sql語法關係其結果只會有一筆資料

    那今天我想把那筆資料裡的文字都直接傳送到textbox裡

    該怎麼做比較好?

     

    煩請高手解答

    感謝...

    2008年8月27日 上午 05:44

解答

  • HI,

     

    可以寫個迴圈處理:

     

    StringBuilder sb=new StringBuilder();

     

    for (int i=0;i<ds.Tables["DEB007"].Columns.Count;i++)

    {

    sb.Append(ds.Tables["DEB007"].Rows[0]Idea.ToString());

    }

     

    TextBox1.Text=sb.ToString();

     

    tihs

    2008年8月27日 上午 06:24
  • this 大大的回答意思是  sb.Append(ds.Tables["DEB007"].Rows[0][ i ].ToString());

    2008年8月27日 上午 09:08

所有回覆

  • HI,

     

    可以寫個迴圈處理:

     

    StringBuilder sb=new StringBuilder();

     

    for (int i=0;i<ds.Tables["DEB007"].Columns.Count;i++)

    {

    sb.Append(ds.Tables["DEB007"].Rows[0]Idea.ToString());

    }

     

    TextBox1.Text=sb.ToString();

     

    tihs

    2008年8月27日 上午 06:24
  • 不好意思

    出來的結果我的textbox出現的是"System.Data.DataRow"

     

    我是先button_click之後把結果秀在datagridview裡

    然後後面再補你這段程式碼

     

    不知道是哪邊出問題了@.@
    2008年8月27日 上午 06:43
  • this 大大的回答意思是  sb.Append(ds.Tables["DEB007"].Rows[0][ i ].ToString());

    2008年8月27日 上午 09:08
  •  

    感謝各位大大的幫忙

    可是我剛剛試了一下

    textBox1.Text = ds.Tables["DEB007"].Rows[0][0].ToString();

    這樣也行耶...

     

    我不太懂StringBuilder這個類別以及Append這個方法是用來做什麼的

    2008年8月27日 上午 10:03
  •  tomcloud 寫信:

     

    感謝各位大大的幫忙

    可是我剛剛試了一下

    textBox1.Text = ds.Tables["DEB007"].Rows[0][0].ToString();

    這樣也行耶...

     

    我不太懂StringBuilder這個類別以及Append這個方法是用來做什麼的



    如果你只有一筆資料的一個欄位值可以使用 SqlCommand.ExecuteScalar 方法(System.Data.SqlClient)

    StringBuilder 類別的 Append() 方法是比較有效能的連結字串方式

    效能考量

    ConcatAppendFormat 方法都會將新的資料串連到現有的 StringStringBuilder 物件。String 物件串連作業永遠都會從現有的字串和新資料建立新的物件。StringBuilder 物件會維護一個緩衝區,以容納新資料的串連。如果有可用的空間,新的資料會附加至緩衝區的尾端,否則,會配置較大的新緩衝區,而原始緩衝區的資料會複製到新的緩衝區,然後新的資料會附加至新的緩衝區。

    StringStringBuilder 物件之串連作業的效能是根據記憶體的配置頻率而定。String 串連作業永遠都會配置記憶體,而 StringBuilder 串連作業只有在 StringBuilder 物件緩衝區太小而無法容納新資料時,才會配置記憶體。因此,如果要串連固定數目的 String 物件,最好使用 String 類別的串連作業。在這種情況下,編譯器 (Compiler) 甚至可能將個別的串連作業結合成一個單一作業。如果要串連任意數目的字串 (例如,如果迴圈串連任意數目的使用者輸入字串),則對於串連作業來說最好使用 StringBuilder 物件。

    實作者注意事項 這項實作的預設容量是 16,而最大的容量是 Int32.MaxValue。 當容量依照執行個體的值增加時,StringBuilder 可以配置更多儲存字元所需的記憶體。配置的記憶體數量是實作特有的,如果需要的記憶體數量超過最大容量,則擲回 ArgumentOutOfRangeException。 例如,AppendAppendFormatEnsureCapacityInsertReplace 方法可以放大執行個體值。 Chars 屬性可以存取 StringBuilder 值的個別字元。從零起始的索引位置。

    2008年8月27日 上午 10:22
  • chhuang大大:

     

    請問您是怎麼貼的? 為什麼我貼的會變成灯泡符號?

     

    tihs

    2008年8月28日 上午 02:47
  •  tihs 寫信:

    chhuang大大:

     

    請問您是怎麼貼的? 為什麼我貼的會變成灯泡符號?

     

    tihs



    this 大大:

    因為你的 [i] 之間沒有空白,剛好與預設的表情符號文字一致,所以被系統給替換成燈泡了。

    最好的方式還是使用【程式碼區塊】把程式碼放入。

    2008年8月28日 上午 03:17
  • 塩來如此, 感謝感謝

     

    tihs

    2008年8月30日 下午 01:13