После просмотра этого сайта в течение некоторого времени я смог начать с фрагмента кода, который добавляет информацию из набора текстовых полей в предварительно установленную базу данных.
Вот этот код:
string connString = "Provider=Microsoft.ACE.OLEDB.12.0;data source=[[Rather not release private information, but trust me, this part works]]";
var _ID = LblID.Text;
var _FirstName = TxtUsername.Text;
var _LastName = TxtPassword.Text;
var _DOB = TxtFirstName.Text;
var _Number1 = TxtLastName.Text;
var _Number2 = TxtDOB.Text;
var _Email = TxtNumber2.Text;
var _Username = TxtEmail.Text;
var _Password = TxtNumber1.Text;
using (OleDbConnection conn = new OleDbConnection(connString))
{
OleDbCommand cmd = new OleDbCommand("INSERT into Users ([_ID], [_FirstName], [_LastName], [_DOB], [_Number1], [_Number2], [_Email], [_Username], [_Password]) Values(@ID Number, @First Name, @Last Name, @Date of Birth, @Phone Number 1, @Phone Number 2, @Email, @Username, @Password)");
cmd.Connection = conn;
conn.Open();
if (conn.State == ConnectionState.Open)
{
cmd.Parameters.Add("@ID Number", OleDbType.VarChar).Value = _ID;
cmd.Parameters.Add("@First Name", OleDbType.VarChar).Value = _FirstName;
cmd.Parameters.Add("@Last Name", OleDbType.VarChar).Value = _LastName;
cmd.Parameters.Add("@Date of Birth", OleDbType.VarChar).Value = _DOB;
cmd.Parameters.Add("@Phone Number 1", OleDbType.VarChar).Value = _Number1;
cmd.Parameters.Add("@Phone Number 2", OleDbType.VarChar).Value = _Number2;
cmd.Parameters.Add("@Email", OleDbType.VarChar).Value = _Email;
cmd.Parameters.Add("@Username", OleDbType.VarChar).Value = _Username;
cmd.Parameters.Add("@Password", OleDbType.VarChar).Value = _Password;
try
{
cmd.ExecuteNonQuery();
MessageBox.Show("Data Added");
conn.Close();
}
catch (OleDbException ex)
{
MessageBox.Show(ex.Message);
conn.Close();
}
}
else
{
MessageBox.Show("Connection Failed");
}
}
Это немного долго, но оставайтесь со мной здесь.
Этот код очень похож на тот, который я нашел из ответа на предыдущий вопрос Конечно, переименование переменных и тому подобное для интеграции кода в мое приложение.
Однако, после выполнения пошаговой разбивки того, как приложение обрабатывает это, здесь, похоже, произойдет сбой:
try
{
cmd.ExecuteNonQuery();
MessageBox.Show("Data Added");
conn.Close();
}
Точнее, cmd.ExecuteNonQuery ().
Кажется, что попытка останавливается на этой части и пропускает прямо к улову.
У меня вопрос, что яделать неправильно?Насколько сильно я это запутал?
Если вам нужны какие-то подробности, просто прокомментируйте, и я отвечу, как только смогу.
Заранее спасибо.
Редактировать 1: Забыл добавить сообщение об ошибке, мои извинения.
"Синтаксическая ошибка (отсутствует оператор) в выражении запроса '@ID Number'."
Редактировать 2: Не уверен, если этодолжно быть редактирование, но теперь у меня возникает совершенно новая проблема.
После прочтения комментариев я изменил названия областей (как в приложении, так и в базе данных), и теперь я получаюсовершенно новое сообщение об ошибке.
"Оператор INSERT INTO содержит следующее неизвестное имя поля: '_ID'."
У меня такое чувство, что он будет жаловаться на остальных.
Извините за все неприятности.