Access 데이터베이스에서 두 테이블을 읽는 두 개의 데이터 집합이 있습니다. 나는 EXPRESSION에 의해 데이터를 일치 시켜서 모든 일치하는 "SN 's"을 유지하고 일치하지 않는 것들을 제거 할 수 있기를 원합니다. 지금까지 제 코드는 모든 "SN"을 유지하고 있습니다. 여기에,쿼리에서 일치 항목 가져 오기
con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+filePath);
con3 = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+filePath);
if ((string)comboBox1.SelectedItem == "CGA0112")
{
try
{
string end = "ENDDATE";
string qual = "CGA0112";
string start = "START";
ad.SelectCommand = new OleDbCommand("SELECT b.RSV_CAT, b.SEQNUM, b.LEASE,
b.WELL_ID, a.QUALIFIER, a.KEYWORD, a.EXPRESSION
FROM [AC_ECONOMIC] a INNER JOIN [AC_PROPERTY] b
on a.PROPNUM=b.PROPNUM WHERE a.KEYWORD = '" +end+ "'
AND a.QUALIFIER = '" +qual+ "' AND a.EXPRESSION LIKE 'SN%'", con);
ds.Clear();
ad.Fill(ds);
con.Open();
ad.SelectCommand.ExecuteNonQuery();
con.Close();
ad3.SelectCommand = new OleDbCommand("SELECT b.RSV_CAT, b.SEQNUM, b.LEASE,
b.WELL_ID, a.QUALIFIER, a.KEYWORD, a.EXPRESSION
FROM [AC_ECONOMIC] a INNER JOIN [AC_PROPERTY] b
on a.PROPNUM=b.PROPNUM
WHERE a.KEYWORD = '" + start + "' AND a.QUALIFIER = '" +
qual + "' AND a.EXPRESSION LIKE 'SN%'", con3);
ds3.Clear();
ad3.Fill(ds3);
ds.Merge(ds3); //merges the two datasets together
win1.frm1 = this;
win1.Show();
con3.Open();
ad3.SelectCommand.ExecuteNonQuery();
con3.Close();
}
나는 가능한 해결책이 있는지 궁금 해서요. 어떤 도움이라도 대단히 감사합니다. 감사.
데이터 집합을 병합하는 대신 행 컬렉션에 대해 LINQ 조인을 사용할 수 있습니까? –
@ CjS. 나는 그 일을 어떻게 할 것인지 잘 모르겠습니다. – Stick
답변으로 예제를 추가했습니다. 꽤 가까워 야해. –