C# 在C中使用SqlDataAdapter更新数据库#

C# 在C中使用SqlDataAdapter更新数据库#,c#,sql-server-2012,sqldataadapter,C#,Sql Server 2012,Sqldataadapter,我有下面的代码来更新我的数据库表时,按钮被点击,但它不工作 protected void Button_Click(object sender, EventArgs e) { HasinReservation.Entities.Db.Transaction dt = new Transaction(); SqlConnection connection = new SqlConnection( @"Data Source=192.x.x.x\Sql2008;Ini

我有下面的代码来更新我的数据库表时,按钮被点击,但它不工作

protected void Button_Click(object sender, EventArgs e)
{
    HasinReservation.Entities.Db.Transaction dt = new Transaction();
    SqlConnection connection = new SqlConnection(
        @"Data Source=192.x.x.x\Sql2008;Initial Catalog=GardeshgariKish;User ID=cms;Password=xxxxx;MultipleActiveResultSets=True;Application Name=EntityFramework");
    connection.Open();
    SqlCommand sqlCmd = new SqlCommand(
        "Update Transaction SET IsCancelled = 1 WHERE BarCodeNumber = @Value1", connection);
    SqlDataAdapter sqlDa = new SqlDataAdapter(sqlCmd);
    string barcode = dgvData.Rows[0].Cells[12].Text;
    sqlCmd.Parameters.AddWithValue("Value1", barcode);
    connection.Close();
}

为什么要尝试使用
SqlDataAdapter
执行
UPDATE
语句?使用
SqlCommand
对象构造
SqlDataAdapter
时,该命令对象表示适配器的
SELECT
命令。
UPDATE
语句不选择任何内容,
select
命令不更新任何内容

完全摆脱
SqlDataAdapter
,只需执行以下命令:

sqlCmd.ExecuteNonQuery();

您可能还需要添加一些错误处理,以便异常不会到达UI(并确保在出现错误时正确关闭连接)。您似乎也没有对
事务
对象执行任何操作,因此您可能也可以摆脱它。

为什么要尝试使用
SqlDataAdapter
执行
更新
语句?使用
SqlCommand
对象构造
SqlDataAdapter
时,该命令对象表示适配器的
SELECT
命令。
UPDATE
语句不选择任何内容,
select
命令不更新任何内容

完全摆脱
SqlDataAdapter
,只需执行以下命令:

sqlCmd.ExecuteNonQuery();

您可能还需要添加一些错误处理,以便异常不会到达UI(并确保在出现错误时正确关闭连接)。您似乎也没有对
事务
对象执行任何操作,因此您可能也可以摆脱它。

为什么要尝试使用
SqlDataAdapter
执行
更新
语句?使用
SqlCommand
对象构造
SqlDataAdapter
时,该命令对象表示适配器的
SELECT
命令。
UPDATE
语句不选择任何内容,
select
命令不更新任何内容

完全摆脱
SqlDataAdapter
,只需执行以下命令:

sqlCmd.ExecuteNonQuery();

您可能还需要添加一些错误处理,以便异常不会到达UI(并确保在出现错误时正确关闭连接)。您似乎也没有对
事务
对象执行任何操作,因此您可能也可以摆脱它。

为什么要尝试使用
SqlDataAdapter
执行
更新
语句?使用
SqlCommand
对象构造
SqlDataAdapter
时,该命令对象表示适配器的
SELECT
命令。
UPDATE
语句不选择任何内容,
select
命令不更新任何内容

完全摆脱
SqlDataAdapter
,只需执行以下命令:

sqlCmd.ExecuteNonQuery();

您可能还需要添加一些错误处理,以便异常不会到达UI(并确保在出现错误时正确关闭连接)。您似乎也没有对该
事务
对象做任何事情,因此您可能也可以摆脱它。

您对实体框架的实现感到不安,但是没有使用框架来实现它的设计

您已经配置了数据适配器和命令,甚至打开了连接。。。但是您还没有实际执行该命令

sqlCmd.ExecuteNonQuery();
我知道您的实际业务逻辑可能已经被这个简单的CRUD操作所取代,但是我们使用实体框架的主要原因是避免在我们的业务逻辑中编写任何T-SQL。为什么不使用框架提交更改:

protected void Button3_Click(object sender, EventArgs e)
{
    // cancel the selected transaction
    string selectedBarcode = dgvData.Rows[0].Cells[12].Text;
    using(var dataContext = new HasinReservation.Entities.Db())
    {
        var transaction = dataContext.Transaction.Single(t => t.Barcode == selectedBarcode);
        transaction.IsCancelled = true;
        dataContext.SaveChanges();
    }
}

这本身可能不是一个很好的解决方案,但它使用框架来完成您试图手动执行的操作。

我对您实施实体框架感到困扰,但没有使用框架来完成它的设计

您已经配置了数据适配器和命令,甚至打开了连接。。。但是您还没有实际执行该命令

sqlCmd.ExecuteNonQuery();
我知道您的实际业务逻辑可能已经被这个简单的CRUD操作所取代,但是我们使用实体框架的主要原因是避免在我们的业务逻辑中编写任何T-SQL。为什么不使用框架提交更改:

protected void Button3_Click(object sender, EventArgs e)
{
    // cancel the selected transaction
    string selectedBarcode = dgvData.Rows[0].Cells[12].Text;
    using(var dataContext = new HasinReservation.Entities.Db())
    {
        var transaction = dataContext.Transaction.Single(t => t.Barcode == selectedBarcode);
        transaction.IsCancelled = true;
        dataContext.SaveChanges();
    }
}

这本身可能不是一个很好的解决方案,但它使用框架来完成您试图手动执行的操作。

我对您实施实体框架感到困扰,但没有使用框架来完成它的设计

您已经配置了数据适配器和命令,甚至打开了连接。。。但是您还没有实际执行该命令

sqlCmd.ExecuteNonQuery();
我知道您的实际业务逻辑可能已经被这个简单的CRUD操作所取代,但是我们使用实体框架的主要原因是避免在我们的业务逻辑中编写任何T-SQL。为什么不使用框架提交更改:

protected void Button3_Click(object sender, EventArgs e)
{
    // cancel the selected transaction
    string selectedBarcode = dgvData.Rows[0].Cells[12].Text;
    using(var dataContext = new HasinReservation.Entities.Db())
    {
        var transaction = dataContext.Transaction.Single(t => t.Barcode == selectedBarcode);
        transaction.IsCancelled = true;
        dataContext.SaveChanges();
    }
}

这本身可能不是一个很好的解决方案,但它使用框架来完成您试图手动执行的操作。

我对您实施实体框架感到困扰,但没有使用框架来完成它的设计

您已经配置了数据适配器和命令,甚至打开了连接。。。但是您还没有实际执行该命令

sqlCmd.ExecuteNonQuery();
我知道您的实际业务逻辑可能已经被这个简单的CRUD操作所取代,但是我们使用实体框架的主要原因是避免在我们的业务逻辑中编写任何T-SQL。为什么不使用框架提交更改:

protected void Button3_Click(object sender, EventArgs e)
{
    // cancel the selected transaction
    string selectedBarcode = dgvData.Rows[0].Cells[12].Text;
    using(var dataContext = new HasinReservation.Entities.Db())
    {
        var transaction = dataContext.Transaction.Single(t => t.Barcode == selectedBarcode);
        transaction.IsCancelled = true;
        dataContext.SaveChanges();
    }
}

这本身可能不是一个很好的解决方案,但它使用框架来执行您试图手动执行的操作。

您不应该提交您的事务吗?这里没有看到EF的任何部分
SqlDataAdapter
是ADO.NET的一部分,用于