2017-09-15 8 views
-2

2つのdatagridviewsを作成しようとしています。ここでは、ユーザーが行を選択し、SQL Inner joinを使用して2番目のDataGridビューを作成します。C#Winforms Select Datagridview Selectionを使用したWhereクエリ

私の問題は、誤った構文近接デバイスというエラーメッセージが表示されることです。

Select *FROM ChildInner JOIN Device ON Child.DeviceID = Device.DeviceIDWHERE Device.DeviceID = @DeviceID 

ChildInnerまたはDevice.DeviceIDWHERE

private void dataGridView1_SelectionChanged(object sender, EventArgs e) 
{ 
    foreach (DataGridViewRow row in dataGridView1.SelectedRows) 
    { 
     Properties.Settings.Default.SelectedCell = row.Cells[0].Value.ToString(); 
     string SerialNumber = row.Cells[1].Value.ToString(); 
     Child_Refresh(); 
    } 
} 

private void Child_Refresh() 
{ 
    string Query = "Select *" + 
     "FROM Child" + 
     "Inner JOIN Device ON Child.DeviceID = Device.DeviceID" + 
     "WHERE Device.DeviceID = @DeviceID"; 

    SqlConnection con = new SqlConnection("Data Source=LT-SDGFLD-1803;Initial Catalog=Test;Persist Security Info=True;User ID=sa;Password="); 
    SqlCommand cmd = new SqlCommand(Query, con); 
    try 
    { 
     cmd.Parameters.Add("@DeviceID", System.Data.SqlDbType.VarChar); 
     cmd.Parameters["@DeviceID"].Value = Properties.Settings.Default.SelectedCell; 
     con.Open(); 
     SqlDataAdapter da = new SqlDataAdapter(); 
     da.SelectCommand = cmd; 
     DataTable dt = new DataTable(); 
     da.Fill(dt); 
     dataGridView2.DataSource = dt; 
     con.Close(); 
    } 
    catch (Exception ec) 
    { 
     MessageBox.Show(ec.Message); 
    } 
} 
+0

@fuboのために1行に書き込む間にスペースを追加する必要があります。私はあまりにも急いで投稿する – imamage597

答えて

2

クエリ

string Query = "Select *" + 
    "FROM Child" + 
    "Inner JOIN Device ON Child.DeviceID = Device.DeviceID" + 
    "WHERE Device.DeviceID = @DeviceID"; 

結果は無効な構文です。

だから、ライン

string Query = "Select * " + 
    "FROM Child " + 
    "Inner JOIN Device ON Child.DeviceID = Device.DeviceID " + 
    "WHERE Device.DeviceID = @DeviceID"; 

または私は私の問題でOPを更新し、より良い概観

string Query = "SELECT * FROM Child Inner JOIN Device ON Child.DeviceID = Device.DeviceID WHERE Device.DeviceID = @DeviceID"; 
関連する問題