【问题标题】:WPF/C# Insert data into databaWPF/C# 将数据插入数据库
【发布时间】:2018-07-04 03:23:51
【问题描述】:

我真的是 C#/WPF 的新手。我尝试编写我的第一个应用程序。所以我添加了一个带有 DataSet 和 TableAdapter 的本地数据库(.mdf 文件)。我还创建了一个表(用户)。

public static int CreateNewId()
        {
            using (var todoDataSet = new ToDoDataSet())
            {
                using (var tableAdapter = new UserTableAdapter())
                {
                    var userid = (int) tableAdapter.GetLastId();
                    userid = userid + 1;
                    return userid;
                }
            }
        }

通过这个函数,我得到了表的最后一个 ID——这很好用。但是如果我想在表中插入一些新数据,它不会。没有任何错误信息,但新数据不会显示在表格中。

public static void CreateUser(User user)
        {

            using (var todoDataSet = new ToDoDataSet())
            {
                using (var userTableAdapter = new UserTableAdapter())
                {
                    try
                    {
                        userTableAdapter.Insert(user.ID, user.Loginname, user.Firstname, user.Lastname, user.Email, user.Password, user.PicUri);
                        userTableAdapter.Update(todoDataSet.User);
                        MessageBox.Show("Update successful");
                    }
                    catch (System.Exception ex)
                    {
                        MessageBox.Show("Update failed");
                    }

                }
            }
        }

有人知道我做错了什么吗?还是少了什么?

感谢您的帮助!

编辑: 调用 CreateUser() 的代码:

private void RegisterUser(object sender, RoutedEventArgs e)
        {
            int userId = Mysql.CreateNewId();
            Console.WriteLine(rm.FirstName);
            User loggedUser = new User(userId, rm.Loginname, rm.Email, rm.FirstName, rm.LastName, rm.Password);
            Console.WriteLine(loggedUser.ID);
            Console.WriteLine(loggedUser.Loginname);
            Mysql.CreateUser(loggedUser);
        }

【问题讨论】:

  • 你在 UserTableAdapter 中的插入语句是什么
  • @daniel.shih 我用的是tableAdapter官方的Insert方法。所以我没有添加额外的插入语句。
  • 能否展示代码,调用方法public static void CreateUser(User user),并分配用户对象
  • @daniel.shih 我更新了我的问题。

标签: c# sql-server database dataadapter sqldataadapter


【解决方案1】:

我想你可能会调用一个方法todoDataSet.User.Add[tablename]RowDataTable 添加mehtod 而不是 userTableAdapter.Insert(user.ID, user.Loginname, user.Firstname, user.Lastname, user.Email, user.Password, user.PicUri);

然后你调用userTableAdapter.Update(todoDataSet.User);,你会将数据保存在DB中。

因为方法userTableAdapter.Update来自DbDataAdapter

【讨论】:

    猜你喜欢
    • 2013-07-31
    • 1970-01-01
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    • 2015-07-22
    相关资源
    最近更新 更多