2017-10-23 2 views
1

SQLサーバーからデータグリッドビューにデータを取得しましたが、セル値を変更する方法がわかりません。私は取得された値1と0を利用可能かつ利用不可能に変更しなければならない。ここでデータを取得するためのコードです...助けてください。グリッドビュー - C#

private void btnsearch_Click(object sender, EventArgs e) 
    { 
     SqlConnection con = new SqlConnection("server = 192.168.100.6;Database=sms;UID=sa;Password=1234;"); 
     SqlCommand cmd = new SqlCommand("Select id as 'Book ID',name as 'Name' , status as 'Status' from book where Name = @name", con); 
     cmd.Parameters.AddWithValue("@name", txtFirstName.Text); 
     try 
     { 

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

      DataTable dt = new DataTable(); 
      da.Fill(dt); 
      BindingSource bsource = new BindingSource(); 
      bsource.DataSource = dt; 
      dataGridView1.DataSource = bsource; 
     } 
     catch (Exception ec) 
     { 
      MessageBox.Show(ec.Message); 
     } 

    // chage_value(); 
     dataGridView1.Show(); 

    } 

} 
+0

GridViewまたはDataGridViewを明確にしてください。 – AsifAli72090

答えて

0

すべての答えは以下の

private void btnsearch_Click(object sender, EventArgs e) 
     { 
      SqlConnection con = new SqlConnection("server = 192.168.100.6;Database=sms;UID=sa;Password=1234;"); 
string [email protected]"Select id as 'Book ID',name as 'Name' , 
      Case when status=0 then 'unavailable' else 'available ' 
      End as 'Status' from 
      book where Name ='"+txtFirstName.Text +"'" 
      SqlCommand cmd = new SqlCommand(sSql, con); 
      try 
      { 

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

       DataTable dt = new DataTable(); 
       da.Fill(dt); 

       dataGridView1.DataSource = dt; 
      } 
      catch (Exception ec) 
      { 
       MessageBox.Show(ec.Message); 
      } 

     // chage_value(); 
      dataGridView1.Show(); 

     } 

    } 
0

ファーストを見つけてください、変数でクエリを保存してみてください。これは長期的にあなたを助けるでしょう。また、クエリをサーバーに送信しようとする前に、接続されているかどうかを確認することをお勧めします。サーバーからデータを取得するときには文字列として表示される可能性が高いことを覚えておく必要があります。そのため、数値と比較したい場合は、最初に変換する必要があります。

あなたができることは、以下に書いたものに類似したものです。クエリーから返される回答の数を数え、それらをループして、それらが0か1かどうかを確認してから、値をAvaliableまたはUnavaliableに置き換えます。

if (dbCon.IsConnect()){ 
      MySqlCommand idCmd = new MySqlCommand("Select * from " + da.DataGridView1.Text, dbCon.Connection); 
      using (MySqlDataReader reader = idCmd.ExecuteReader()){ 
       // List<string> stringArray = new List<string>(); // you could use this string array to compare them, if you like this approach more. 
       while (reader.Read()){ 
        var checkStatus= reader["Status"].ToString(); 
        Console.WriteLine("Status: " + checkStatus.Split(' ').Count()); //checks how many items you've got. 
        foreach (var item in checkStatus.Split(' ').Select(x => x.Trim()).Where(x => !string.IsNullOrWhiteSpace(x)).ToArray()){ 
         var item2 = 0.0; // your 0 or 1 for avaliable or unavaliable.. 
         try{ 
          item2 = double.Parse(item.ToString()); 
          if(strcmp(item2,'0') == 1){ //assuming you only have 0's and 1's. 
           item2 = "unavaliable"; 
          }else{ 
           item2 = "avaliable"; 
          } 
         } 
         catch (Exception){ 
          //do what you want 
         } 
         Console.WriteLine("item: " + item2); 
        } 
       } 
       dbCon.Close(); 
      } 
     } 
     return //what you want; 
} 
関連する問題