c# - 向数据库中插入一行

标签 c# .net sql database

我在理解数据库和 SQL 的工作原理时遇到了一些困难。我正在尝试更新数据库中的特定行。我可以删除一行,但是当我使用 InsertAt 函数时,它总是附加到我的数据库的末尾。此外,它还分配了一个新的标识符键。

我只想编辑已经存在的内容。不需要新 key ,我希望编辑后的行保留在原处。

我试图剥离代码以显示问题。

public partial class MainWindow : Window
{

    System.Data.SqlClient.SqlConnection con;
    System.Data.SqlClient.SqlDataAdapter da;

    DataSet sessions;

    public MainWindow()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        con = new System.Data.SqlClient.SqlConnection();

        sessions = new DataSet();

        con.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Users\\md\\PokerDataBase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";

        con.Open();

        string sql = "SELECT * From Sessions";
        da = new System.Data.SqlClient.SqlDataAdapter(sql, con);
        da.Fill(sessions, "Sessions");

        con.Close();

        System.Data.SqlClient.SqlCommandBuilder cb;
        cb = new System.Data.SqlClient.SqlCommandBuilder(da);

        DataTable dt = sessions.Tables["Sessions"];


        DataRow table = sessions.Tables["Sessions"].NewRow();
        table[0] = "Some Data";
        table[1] = "Some Data";
        table[2] = "Some Data";
        table[3] = 2;
        table[4] = 3;
        sessions.Tables["Sessions"].Rows[2].Delete();
        sessions.Tables["Sessions"].Rows.InsertAt(table, 2);

        da.Update(sessions, "Sessions");
    }
}

谁能帮我弄清楚我做错了什么?

最佳答案

错误

您正在使用

创建一个新行
DataRow table = sessions.Tables["Sessions"].NewRow();

这将向您的数据库添加新行,它不会更新行。

解决方案

要更新一行,您需要选择该特定行,例如:

DataRow table = sessions.Tables["Sessions"].Rows[0];

然后修改行数据,然后更新da
这将更新数据库中的现有行。

关于c# - 向数据库中插入一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11773201/

相关文章:

c# - 如何使用 GetType GetValue 区分两个对象的属性值?

sql - 德州扑克数据的关系数据库结构

c# - 两个对象上的 Linq 完全外连接

c# - lambda 表达式中的 SQL double 'IN' 子句

c# - 在脚本中发布构建事件#

c# - 在 Linq 谓词中,编译器会优化对 Enumerable.Min() 的 "scalar"调用还是会为每个项目调用它?

c# - 如何将数据从一个 UnmanagedMemoryStream 复制到另一个

c# - 阅读 xml 的最佳方式

.net - 使用 .NET 属性的最佳做法是什么?

.net - ASP.MVC 3 安装错误