C#SQLDataAdapter - 不将数据插入DB

时间:2015-09-03 20:58:28

标签: c# winforms sqldataadapter

这就是我得到的:用户从数据库名称的清单框中选择他们想要存档的名称。切换箱子以便捕捉选择。

case "userSelection":
                sqlAdapter = CreateMyAdapter("dbName", true, sqlconn, null);
                sqlAdapter.SelectCommand.CommandText += "";
                sqlAdapter.Fill(myDS.tableName);
                sqlAdapter.Dispose();

适配器:

private SqlDataAdapter CreateMyAdapter(string TableName, bool IncludeUpdates, SqlConnection sqlConn, SqlTransaction sqlTran)
{
    SqlDataAdapter sqlAdapter = null;
    SqlConnection sqlConnArchive = new SqlConnection();

    strSQL = "SELECT " + TableName + ".* FROM " + TableName;
    sqlAdapter = new SqlDataAdapter(strSQL, sqlConn);

    // Right here, I create another sqlConnection that is pointed to
    // another datasource.

    sqlConnArchive = getThisOtherConnection();

    SqlCommand sqlComm;

    if (IncludeUpdates)
    {
        string strInsertSQL = "<insertQuery>";

        sqlComm = new SqlCommand(strInsertSQL, sqlConnArchive);
        sqlComm.Parameters.Add("@TableID", SqlDbType.Int, 0, "TableID");
        // More params here...

        sqlAdapter.InsertCommand = sqlComm;

        // Update

        // Delete

    }
 }
        return sqlAdapter;

问题: 如您所见,sqlConn是与SELECT命令关联的连接。并且sqlConnArchive与INSERT绑定。这里的想法是,如果愿意,我可以从DB_1中选择数据,并使用相同的SQLDataAdapter将其插入到DB_2中。但我遇到的问题是试图插入。选择工作正常,并在此行sqlAdapter.Fill(myDS.tableName);一旦填充执行数据就在那里。但INSERT无效。

一些事情:

  • 我测试了一下,看看SQLDataAdapter是否无法处理多个数据源/连接,切换了所以它指向同一个数据库只是不同的表,我看到了相同的结果。

  • 我已确认该问题不在INSERT查询中。

  • 没有错误,只是调试中的步骤。

  • 我尝试了几种.Update()的排列,但没有一种能够奏效。我已经分配了这个项目,在整个事情中,.Fill();似乎是将数据提交回数据库。

  • 我已经测试了数据库端,连接性很强。没有登录等问题..

任何帮助非常赞赏。

请注意 - 我试图更加强调“大大”这个词,但受到我的工具集的限制。显然,SOF不支持粗体,闪烁,下划线,火焰或嵌入式音乐。

1 个答案:

答案 0 :(得分:1)

我想你想要ExecuteNonQuery

var rowsAffected = sqlAdapter.InsertCommand.ExecuteNonQuery();

执行该语句,然后返回受影响的行数。 Fill方法无法运行任何InsertCommand