PDA

View Full Version : مشکل در SQL



tefos666
شنبه 13 تیر 1388, 15:03 عصر
باعرض سلام خدمت اساتید محترم

دوستان من مشکلی دارم میخواستم بدونم کسی میتونه کمک کنه یا نه

من یک گرید دارم که اطلاعاتش رو از یک فایل CSV که text هستش میخونم یعنی یک دکمه گذاشتم و با فشار دادن اون آدرس فایل رو میگیرم و اطلاعات رو تو گرید نشون میدم - حالا یک فایل اکسس هم دارم که اطلاعات دیتابیس من تو اونه و هیچ ربطی به اون فایل text نداره ، من باید اطلاعات نمایش داده شده تو گرید رو با کمی تغییرات تو یک فایل text دیگه دخیره کنم که این کار رو هم تقریبا انجام دادم فقط مشکل اینجاست که تو فایل اکسس یک جدول دارم که 2 تا ستون داره که توش یکسری شماره هستش - شماره های ستون اول تو فایل text من هم هست ولی شماره های ستون دوم نه

تو گرید این اطلاعات رو دارم Gridview1

(D) (C) (B) (A)
____ _ ___ ___ ___
ED 787 677 1000
ED 787 677 1001
ED 787 677 1002
ED 787 677 1003
ED 787 677 1004
ED 787 677 1005

تو فایل دیتابیسم هم اطلاعات زیر رو دارم tbl_data


(B) (A)
____ _ __

1001 4554
1002 5666
1003 3455
1004 2344
1005 7677
1008 6555
4152 65777
5448 2323
5455 5456

من باید یک select بنویسم که کدهایی که تو ستون اول دیتابیس دارم رو با کدهایی که تو ستون اول گرید دارم مقایسه کنه و فقط اونایی رو جدا کنه که تو هردوتا مشترکن یا بعبارتی اونایی که تو دیتابیس هستش - بعدا باید یک update بنویسم که با توجه به کدهای ستون دوم دیتابیس اون کدهایی که سری قبل select کردم و جدا شدن رو update کنه یعنی اگر کد
1001 جداشده بود بشه 4554

یه جور select که update توش تلفیق شده باشه - لطفا کمک کنید صفره صفرم و هیچ چیز هم نمیدونم اگر میشه کدش رو برام بنویسید


اینم کد برنامم




public DataSet LoadCSV(int numberOfRows)
{
string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=datacenter.mdb";
OleDbConnection objConn = new OleDbConnection(strConnection);
OleDbCommand objCmd = null;
datacenterDataSet objDS = new datacenterDataSet();
objConn.Open();
objCmd = objConn.CreateCommand();
objCmd.CommandText = "select * from tbl_last ";
OleDbDataAdapter objDA = new OleDbDataAdapter(objCmd);
objDA.Fill(objDS, "tbl_last");
objConn.Close();

DataSet ds = new DataSet();
try
{

// Creates and opens an ODBC connection
string strConnString = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" + this.dirCSV.Trim() + ";Extensions=asc,csv,tab,txt;Persist Security Info=False";
string sql_select;
OdbcConnection conn;
conn = new OdbcConnection(strConnString.Trim());
conn.Open();
//Creates the select command text
if (numberOfRows == -1)
{
//sql_select = "select * from [" + this.FileNevCSV.Trim()+ "]";
sql_select="select * from ["+this.fileNevCSV.Trim()+"]";
}
else
{

// sql_select = "select * from [" + this.FileNevCSV.Trim() + "] ";
sql_select = "Update [" + this.fileNevCSV.Trim() + "] (F1) select cd from [" + objDS.Tables[0].ToString() + "]";
//f1= '0251' OR f1='0287' or F1='0288' OR f1='0296' or F1='0297' OR f1='0327' or F1='0496' OR f1='0505' or F1='0712' OR f1='0763' or F1='0767' OR f1='0856' or F1='0885' OR f1='0917' or F1='0933' OR f1='0935' or F1='0947' OR f1='0949' or F1='0950' OR f1='0961' or F1='0964' OR f1='0978' or F1='1034' OR f1='1041' or F1='1042' OR f1='1059' or F1='1062' OR f1='1068' or F1='1104' OR f1='1106' or F1='1114' OR f1='1123' or F1='1135' OR f1='1142' or F1='1147' OR f1='1159' or F1='1222' OR f1='1238' or F1='1244' OR f1='1246' or F1='1253' OR f1='1257' or F1='1259' OR f1='1268' or F1='1275' OR f1='1280' or F1='1295' OR f1='1300' or F1='1301' OR f1='1303' or F1='1303' OR f1='1311' or F1='1317' OR f1='1322' or F1='1340' OR f1='1345' or F1='1350' OR f1='1372' or F1='1375' OR f1='1382' or F1='1388' OR f1='1389' or F1='1399' OR f1='1427' or F1='1442' OR f1='1443' or F1='1444' OR f1='1445' or F1='1446' OR f1='1447' or F1='1448' OR f1='1450' or F1='1451' OR f1='1457' or F1='1458' OR f1='1469' or F1='1472' OR f1='1473' or F1='1474' OR f1='1475' or F1='1478' OR f1='1484' or F1='1486' OR f1='1488' or F1='1489' OR f1='1491' or F1='1505' OR f1='1508' or F1='1519' OR f1='1529' or F1='1536' OR f1='1540' or F1='1544' OR f1='1545' or F1='1553' OR f1='1554' or F1='1555' OR f1='1560' or F1='1561' OR f1='1565' or F1='1575' OR f1='7007' or F1='7055' OR f1='0118' or F1='0370' OR f1='0399' or F1='0911' OR f1='1085' or F1='1108' OR f1='1296' or F1='1407' OR f1='1424' or F1='1506' OR f1='1567' or F1='0184' OR f1='0462' or F1='0581' OR f1='0796' or F1='0062' or F1='1578' or F1='1577' ";

}

//Creates the data adapter
OdbcDataAdapter obj_oledb_da = new OdbcDataAdapter(sql_select, conn);

//Fills dataset with the records from CSV file
obj_oledb_da.Fill(ds, "csv");

//closes the connection
conn.Close();
}
catch (Exception e) //Error
{
MessageBox.Show(e.Message, "Error - LoadCSV",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
return ds;
}

tefos666
شنبه 13 تیر 1388, 17:47 عصر
دوستان کسی راه حلی به ذهنش نمیرسه ؟