У меня есть программа, которую я создал в Visual studio. Программа в основном предназначена для хранения паролей для компаний и внешних счетов. Я хочу продолжить это приложение, автоматически создавая учетные записи компании при создании нового пользователя. Я обратился к этому, используя источник привязки. Я могу получить строку в базе данных, но она не использует встроенный sql-приращение. Я отправлю код, но я пытаюсь выяснить, не ошибся ли я в этом. Я не на 100% знаком с тем, как создаются соединители и классы, создаваемые визуальной студией при подключении решения к базе данных. Я не ищу код, чтобы помочь мне сделать это. Я ищу объяснения и рекомендации. Если вы ответите кодом, пожалуйста, помогите мне понять, объяснив код.C# с использованием источника привязки для добавления строки в таблицу sql с инкрементным полем идентификации
DataSet.AccountsRow newdomainuserrow = DBDataSet.Accounts.NewAccountsRow();
newdomainuserrow.USer = userIDTextBox.Text.ToString();
newdomainuserrow.UserName = userIDTextBox.Text.ToString();
System.DateTime moment = new DateTime();
newdomainuserrow.Password = moment.Year;
newdomainuserrow.AccountName = "Domain";
drawingNumDBDataSet.Accounts.Rows.Add(newdomainuserrow);
MessageBox.Show("User Saved");
this.Validate();
this.usersBindingSource.EndEdit();
this.accountBindingSource.Endedit();
this.tableAdapterManager.UpdateAll(this.DataSet);
Вся помощь очень ценная.
Мэтт
Какое поле базы данных автоматически увеличивается, и что вы имеете в виду, когда говорите, что «он не использует встроенный приращение sql?» Как правило, когда вы вставляете строку в sql, столбец идентификатора (ID) присваивается автоматически. Ваша программа C# не будет знать, какой идентификатор был назначен, если вы не запрашиваете это из базы данных (обычно используя SCOPE_IDENTITY(), чтобы получить последний идентификатор, созданный в пределах транзакции). Это может быть сделано для вас автоматически (за кадром) в зависимости от того, как вы привязываете строки - какова конкретная проблема, с которой вы сталкиваетесь? –
Довольно очень сложно понять, в чем проблема. Совет. Дампируйте эти «коннекторы» и напишите код SQL самостоятельно, это поможет вам в долгосрочной перспективе понять, как работает ваша база данных. Кроме того, убедитесь, что SQL (Server?) - это правильная база данных для вашей задачи. Хранение данных учетной записи для нескольких сотен пользователей может быть выполнено с помощью таких вещей, как тривиальный, как зашифрованный текстовый файл (не рекомендуя его), и вам будет намного проще. Существует много реализаций баз данных, которые намного проще использовать, чем SQL (попробуйте CouchDB). – r41n
Ну, если я привяжу текстовые поля к набору данных. Я просто называю набор данных, добавляет новый пользователь, заполняет текстовые поля, и обновление автоматически получает следующий номер прироста. Проблема в том, что я хочу установить значения полей без привязки к текстовому полю просто так, как вы видите row.column = value. Я не думаю, что вы можете сделать это с помощью набора данных. Поэтому я решил, что использование bindingsource - это путь, но я не могу заставить его вставлять и позволять sql делать свою работу. Поле называется тождеством, которое устанавливается равным 1 за раз. Мне жаль, если это не имеет смысла, я медленно все это изучаю. –