从数据表插入SQL

时间:2013-03-06 07:51:41

标签: c# .net sql-server-ce

我有一个问题。我想将数据从datatable传输到sql。将从Web服务接收的数据传输到datatable.I我正在用循环执行此操作。我不想用循环执行此操作。我怎样做?我的代码;

DataTable gelendata = new DataTable();

private void cari_aktar()
{
    SqlCeConnection dataset_baglanti = conn.baglan();

    ARMINE_SHOP.WebReference.bulten terminal = new ARMINE_SHOP.WebReference.bulten();

    gelendata = terminal.CARILER_MAGAZACILIK("armine_webservice", "pass***", "MikroDB_V14_ARMINE").Tables[0];

    foreach (datarow row in gelendata.rows)
    {
        k = k + 1;
        progressbar1.value = k;

        if (row["cari_kod"] == dbnull.value)
        {
            cari_kod = "";
        }
        else
        {
            cari_kod = (string)row["cari_kod"];
        }
        sqlcecommand cari_ekle = new sqlcecommand("ınsert ınto carı_hesaplar (cari_kod) values (@cari_kod)", dataset_baglanti);
        cari_ekle.parameters.clear();
        cari_ekle.ExecuteNonQuery();
    }

我尝试了代码

SqlCeDataAdapter da = new SqlCeDataAdapter();

da.InsertCommand =new SqlCeCommand("INSERT INTO CARI_HESAPLAR (cari_kod) VALUES (@cari_kod)", dataset_baglanti);

da.InsertCommand.Parameters.Add("@cari_kod", SqlDbType.NVarChar, 50, "cari_kod");

da.Update(terminal.CARILER_MAGAZACILIK("armine_webservice","pass***", "MikroDB_V14_ARMINE"));

等待你的帮助......

谢谢你......

1 个答案:

答案 0 :(得分:0)

我不知道你是否可以在SqlCe中使用它,但在MsSqlConnection中你可以像这样使用

SqlCommandBuilder cmdb = (SqlCommandBuilder)this.CreateCommandBuilder();
cmdb.DataAdapter = (SqlDataAdapter)this.CreateDataAdapter(SQL, connection);
cmdb.RefreshSchema();
SqlDataAdapter dta = cmdb.DataAdapter;
dta.InsertCommand = cmdb.GetInsertCommand(true);
dta.UpdateCommand = cmdb.GetUpdateCommand(true);
dta.DeleteCommand = cmdb.GetDeleteCommand(true);
dta.Update(dataTable);

这是从我自己的框架中复制的,以便于理解:

  • CreateCommandBuilder是CommandBuilder Instancer
  • CreateDataAdapter是DataAdapter Instancer,其中SQL是'SELECT * FROM tablename WHERE ??'
  • GetInsertCommand是一个INSERT命令