1

私はこれを行う方法を理解するためにこのリンクを使用しました。しかし、私の問題はそれが機能しないことです。これは私のコードです:

public void UpdateDatabase(DataSet data, string tableName)
{
    string connectionString = ConfigurationManager.ConnectionStrings["TestDbOnBrie"].ConnectionString;
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        try
        {
            connection.Open();
            using (SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM dbo.TransportSchedule_Customer;", connection))
            {
                using (SqlCommand updateCmd = new SqlCommand("UPDATE dbo.TransportSchedule_Customer SET Alias=@Alias, DeliveryDays1=@DeliveryDays1, DeliveryHours1=@DeliveryHours1, DeliveryType1=@DeliveryType1, DeliveryDays2=@DeliveryDays2, DeliveryHours2=@DeliveryHours2, DeliveryType2=@DeliveryType2, DeliveryDays3=@DeliveryDays3, DeliveryHours3=@DeliveryHours3, DeliveryType3=@DeliveryType3,  DistanceToDealer=@DistanceToDealer WHERE AdrID=@AdrID AND CustID=@CustID", connection))
                {
                    updateCmd.Parameters.Add("@CustID", SqlDbType.VarChar, 50, "CustID");
                    updateCmd.Parameters.Add("@AdrID", SqlDbType.Int, 50,"AdrID");
                    updateCmd.Parameters.Add("@Alias", SqlDbType.VarChar, 50, "Alias");

                    updateCmd.Parameters.Add("@DeliveryDays1", SqlDbType.VarChar, 50, "DeliveryDays1");
                    updateCmd.Parameters.Add("@DeliveryHours1", SqlDbType.VarChar, 50, "DeliveryHours1");
                    updateCmd.Parameters.Add("@DeliveryType1", SqlDbType.VarChar, 50, "DeliveryType1");

                    updateCmd.Parameters.Add("@DeliveryDays2", SqlDbType.VarChar, 50, "DeliveryDays2");
                    updateCmd.Parameters.Add("@DeliveryHours2", SqlDbType.VarChar, 50, "DeliveryHours2");
                    updateCmd.Parameters.Add("@DeliveryType2", SqlDbType.VarChar, 50, "DeliveryType2");

                    updateCmd.Parameters.Add("@DeliveryDays3", SqlDbType.VarChar, 50, "DeliveryDays3");
                    updateCmd.Parameters.Add("@DeliveryHours3", SqlDbType.VarChar, 50, "DeliveryHours3");
                    updateCmd.Parameters.Add("@DeliveryType3", SqlDbType.VarChar, 50, "DeliveryType3");

                    updateCmd.Parameters.Add("@Alias", SqlDbType.VarChar, 50, "Alias");

                    adapter.UpdateCommand = updateCmd;
                }
            }
        }
        catch (Exception exception)
        {
            Console.WriteLine("ERROR in UpdateDatabase() method. Error Message : " + exception.Message);
        }
        finally
        {
            if (connection.State == System.Data.ConnectionState.Open)
            {
                connection.Close();
            }
        }
    }
}

コードはエラーなしで実行されますが、データベーステーブルが新しい情報で更新されません。データセットには、Excelファイルから取得した正しい情報があることがわかります。

4

1 に答える 1

3

Updateここで問題になる可能性のあるタラのデータを更新するためのメソッドを呼び出すのを忘れています

あなたが与えたリンクをチェックしてくださいこのような更新に使用される方法があります

sqlDa.Update(dSet,"emp");

データベースで更新します。


MSDN

DataAdapter.Updateメソッド-指定された「。」から指定された各行のそれぞれのINSERT, UPDATE, or DELETEステートメントを呼び出します。inserted, updated, or deletedDataSetDataTableTable

于 2013-01-09T08:14:32.970 に答える