dataset寫入資料庫
A. dataset 中的數據插入到資料庫中
如果你熟悉ADO.NET,循環DataSet,大概思想是這樣的
for(int i=0;ds.Tables["TableName"].Rows.Count;i++)//循環
ds.tables["TableName"].row[行號]["列名"]//這個可以當欄位
B. c#如何實現將DataSet導入資料庫
可以用insert語句一條一條的插入進去。
用編號0,1,2如果編號的個也不知道,就用datatable.columt.count來計算出有多少個欄位。
C. c#怎麼將dataset裡面的值放到資料庫
DataSet裡面都是很多個DataTable,DataTable可以用sqlBulkCopy來批量提交,性能極高。可以一次性提交構建好的DataTable表。
using(SqlBulkCopysqlBC=newSqlBulkCopy("資料庫連接字元串"))
{
//設定目標列表
sqlBC.DestinationTableName="T_TableName";
//設定本地列-->目標列的一一對應關系
//目標表中第0列一般為自動增長的ID,因此本地的0通常與資料庫中的第1列對應
sqlBC.ColumnMappings.Add(0,1);
sqlBC.ColumnMappings.Add(1,2);
sqlBC.ColumnMappings.Add(2,3);
sqlBC.ColumnMappings.Add(3,4);
sqlBC.ColumnMappings.Add(4,5);
//批量提交
sqlBC.WriteToServer(dt);
}
D. dataset 存入資料庫
protected void Page_Load(object sender, EventArgs e)
{
DataSet ds = GetDataSetByXml(Server.MapPath("~/file1.xml"));
DataTable dt = new DataTable();
dt.PrimaryKey = new DataColumn[] { dt.Columns["ID"] };
dt.Columns.Add("ID",typeof(Int32));
dt.Columns.Add("UserName",typeof(string));
dt.Columns.Add("UserPwd", typeof(string));
dt = ds.Tables[0];
Update(dt);
}
public static DataSet GetDataSetByXml(string strXmlPath)
{
try
{
DataSet ds = new DataSet();
//讀取XML到DataSet
ds.ReadXml(strXmlPath);
if (ds.Tables.Count > 0)
{
return ds;
}
return null;
}
catch (Exception)
{
return null;
}
}
public void Update(DataTable dt)
{
SqlConnection conn = new SqlConnection(Common.SqlHelper.);
SqlDataAdapter adapter = new SqlDataAdapter("select * from tb_test",conn);
SqlCommandBuilder objCommandBuilder = new SqlCommandBuilder(adapter);
DataSet ds = new DataSet();
adapter.Fill(ds);
adapter.Update(dt);
conn.Dispose();
}
E. 如何將DataSet對象存儲到資料庫中
將DataSet數據集寫入資料庫: string strConnect = Provider=SQLOLEDB.1;Password=1234;Persist Security Info=True; + User ID=username;Initial Catalog=MyTempDb;Data Source=localhost; OleDbConnection dbConn = new OleDbConnection; dbConn.ConnectionString = strConnect;try{StringBuilder strXml = new StringBuilder(); StringWriter strWriter = new StringWriter( strXml ); XmlTextWriter writer = new XmlTextWriter(strWriter); writer.WriteStartDocument(); m_dsDataSet.WriteXml(writer); string strSQL = INSERT INTO temp(Temp_date,Temp_data) VALUES(GETDATE(),?); OleDbCommand aCommand = new OleDbCommand( strSQL , dbConn ); aCommand.Parameters.Add(Temp_data, OleDbType.VarChar).Value = strXml.ToString(); aCommand.Connection.Open(); aCommand.ExecuteNonQuery();}catch ( OleDbException e ){Debug.WriteLine(發生異常: + e.ToString());}從資料庫中讀出DataSet數據集: // 這里省略千篇一律的資料庫的Query操作 OleDbDataReader aReader = aCommand.ExecuteReader( ); if (aReader.Read() ){StringBuilder strXml = new StringBuilder( aReader[temp_data].ToString() ); StringReader strReader = new StringReader( strXml.ToString() ); XmlTextReader reader = new XmlTextReader(strReader);try{m_dsDataSet.ReadXml(reader); aReader.Close( );}catch( OleDbException e ){Debug.WriteLine(發生異常: + e.ToString());}}注意以上例子所引用的變數m_dsDataSet的原始定義為DataSet m_dsDataSet,在這里是一個作者自定義包含有兩個表和記錄的DataSet實例,其中的記錄來源於搜索引擎分析出的每條記錄。
F. dataset中的數據如何插入資料庫中
復雜的方法是遍歷行和列,然後創建相應的表,再插入值。
簡單的方法,假定你最終目的只是存儲和獲取dataset,不需要在資料庫里使用其具體列,可以先用dataset.writexml方法保存成文本,然後把文本的內容保存到資料庫。
G. 如何將DataSet 的數據全部寫入到資料庫中
C#版
using System.Data;
using System.Data.SqlClient;
.
.
.
//定義DataSet...
DataSet ds = new DataSet();
//用SqlDataAdapter的Fill方法將數據填入ds;省略不寫。。。如二樓。。。
.
.
.
string strConn = "datasource...."; //連接字元串定義
SqlConnection sqlConn = new SqlConnection(strConn);
SqlDataAdapter sqlComm = new SqlDataAdapter();
string default_strComm = "Insert into 表名 values (";
string strComm = default_strComm;
//將ds內容回填
//外層循環,表示總共要向該表中插入多少條記錄
for(int i =0;i<ds.Tables["表名"].Rows.Count;i++)
{
//內層循環表示將該行的第幾個欄位里的值寫入Sql的Insert語句
for(int j=0;j<ds.Table["表名"].Columns.Count;j++)
{
strComm += ds.Tables["表名"].Rows[i].ItemArray.GetValue(j);
}
sqlComm.InsertCommand = new SqlCommand(sqlConn);
sqlComm.InsertCommand.ExecuteNonQuery(); //插入一行數據
strComm = default_strComm;
}
H. C# 把dataset的一部分數據插入資料庫
string strA1=Convert.tostring(dsA.Tables[0].Rows[i]["A1"]);
for(int j=0; j<dsB.Tables[0].Rows.Count.; j++)
{
string strB1=Convert.tostring(dsB.Tables[0].Rows[j]["B1"]);
if(strA1==strB1)
{
string strSQL= string.Format("insert into tb_a (a1,a2,a3,a4) VALUES ({0},{1},{2},{3})",
dsB.Tables[0].Rows[j]["B1"], dsB.Tables[0].Rows[j]["B2"],
dsB.Tables[0].Rows[j]["B3"], dsB.Tables[0].Rows[j]["B4"]);
mySQLcomm.CommandText = strSQL;
mySQLcomm.ExecuteNonQuery();
}
}