已經定義的一張表ds,并且ds里面已經有資料了,現在我想把這記憶體表中的資料查詢出來插入到工資表2019中,如下
insert into 工資表2019 select * from "+ds.Tables[0]
執行后報錯,“物件名 'Sheet1' 無效。”
請問怎么回事,用這種方法進行查詢、插入到資料庫中的表可以嗎?
uj5u.com熱心網友回復:
insert into 工資表2019(a,b,c) value ('','','') //abc是列名這樣子的吧uj5u.com熱心網友回復:
????select into
才是正常寫法,你可以百度“select into”有更詳細的解釋
uj5u.com熱心網友回復:
而instert into的標準型是
Insert into Table2(field1,field2,...) select value1,value2,... from Table1
uj5u.com熱心網友回復:
你的想法很不錯,可惜語法不支持不過你可以這樣寫
public int SqlCopySource(string connString, DataTable table, string name)
{
SqlConnection conn = new SqlConnection(connString);
conn.Open();
using (SqlBulkCopy bulk = new SqlBulkCopy(conn))
{
bulk.BatchSize = table.Rows.Count;
bulk.DestinationTableName = name;
try
{
bulk.WriteToServer(table);
return 1;
}
catch
{
return -1;
}
finally
{
bulk.Close();
conn.Close();
conn.Dispose();
}
}
}
uj5u.com熱心網友回復:
不過以上都是sql陳述句,而你說“記憶體表”,已經脫離sql范疇了只能說一個dt 資料復制到另一個dt,然后在dt構造插入,更新陳述句,save
so,如果是記憶體表datatble,不具備條件。要么回圈一條一條插入,要么利用
DataTable inserts = table.GetChanges(DataRowState.Added);
adapter.Update(inserts);
整體更新
話說,adapter配接器用的比較少了,一般ORM代勞了
uj5u.com熱心網友回復:
記憶體表,是datatable嗎,dt.Rows[i].Cell[j]轉載請註明出處,本文鏈接:https://www.uj5u.com/net/122570.html
標籤:C#
