0

我有一个问题。我想将数据从数据表传输到 sql。将从 Web 服务接收到的数据传输到数据表中。我正在使用循环执行此操作。我不想使用循环执行此操作。我如何做?我的代码;

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"));

等待您的帮助...

感谢你....

4

1 回答 1

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 实例化器
  • CreateDataAdapter 是 DataAdapter Instancer,其中 SQL 是 'SELECT * FROM tablename WHERE ??'
  • GetInsertCommand 是一个 INSERT 命令
于 2013-03-06T10:42:40.483 回答