WPF / C#将数据插入数据库

时间:2018-01-24 23:29:32

标签: c# sql-server database dataadapter sqldataadapter

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

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);
        }

1 个答案:

答案 0 :(得分:0)

我认为您可以调用方法userTableAdapter.Insert(user.ID, user.Loginname, user.Firstname, user.Lastname, user.Email, user.Password, user.PicUri); DataTable添加mehtod而不是 userTableAdapter.Update(todoDataSet.User);

然后你调用userTableAdapter.Update,你将数据保存在数据库中。

因为方法DbDataAdapter来自{{1}}