Я понимаю, что это можно считать дублирующим вопросом, но я в тупике и не знаю, что я делаю не так, мне нужна помощь. В дублирующемся вопросе говорилось об использовании OLEDB для записи в файл Microsoft Access, где, как и раньше, я использовал соединение SQL для выполнения своей задачи. Насколько я могу судить, нет синтаксических, логических или ошибок времени выполнения, и у Visual Studios тоже нет проблем.
Когда я запускаю код и иду, чтобы добавить новую запись в таблицу базы данных Microsoft Access, он говорит, что это сработало, но когда я иду и смотрю на файл, там НИЧЕГО нет. Кто-нибудь, пожалуйста, помогите мне, я просмотрел все ссылки, все веб-страницы, все поисковые системы и не знаю, что не так. Я хотел бы узнать, что не так и как это исправить, чтобы мне больше никогда не приходилось просить о помощи.
В настоящее время я учусь в колледже и работаю над групповым заданием. Наша задача — создать окно, которое будет принимать данные от пользователя, а затем добавлять их в качестве записи в файл Microsoft Access, как если бы это была база данных SQL.
Проблема, с которой мы сталкиваемся, заключается в том, что мы пытаемся добавить новую запись в локальный файл Microsoft Access в таблице с именем Artist. Раньше я подключался к реальному SQL-серверу, и никто другой в моей группе не делал этого, что еще хуже, никто не делал этого с помощью файла Microsoft Access на нашем ПК.
Я добавил базу данных (файл Microsoft Access) в Visual Studios с помощью мастера настройки базы данных. Сначала я использовал для этого прямой SQL, а затем мне сказали, что для этого мне нужно использовать OLEDB. ТАК Я реализовал в коде, и по какой-то причине я все еще не могу заставить его работать. Если кто-нибудь может дать мне руку и сказать мне, что я делаю неправильно, я был бы очень признателен.
Детали, которые я считаю важными для тех, кто может мне помочь:
Имя таблицы, в которую я пытаюсь добавить новую запись: Artist
Имя файла Microsoft Access: Kays.accdb
Расположение файла Microsoft Access: C:\KayDB\Kays.accdb (локальный компьютер)
Еще раз я был бы очень признателен за любую помощь, которую кто-либо может мне дать. Мне действительно любопытно, почему код не работает, пожалуйста, помогите мне понять.
Мой код выглядит следующим образом:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace Kay
{
public partial class Kay_Green : Form
{
string Username,Fname, Mname, Lname, streetaddress, city, phonenumber, emailaddress, zipcode, taxIDnummber, state;
string[,] SQLTable = new string[0, 10];
public Kay_Green()
{
InitializeComponent();
}
private void btnSave_Click(object sender, EventArgs e)
{//Save Button
/*Upon clicking the save button, gather all info and save it into an temp array.
Then send it to the SQL database.*/
/*The order of the data in the array will be the same order in the SQL table.*/
Fname = tbFirstName.Text;
Mname = tbMiddleInitial.Text;
Lname = tbLastName.Text;
streetaddress = tbStreet.Text;
city = tbCity.Text;
state = cbState.Text;
phonenumber = tbPhoneNumber.Text;
emailaddress = tbEmailAddress.Text;
zipcode = tbZipCode.Text;
taxIDnummber = tbTaxID.Text;
Username = tbUserName.Text;
/*SQLTable[0,0] = taxIDnummber;
SQLTable[0,1] = Fname;
SQLTable[0,2] = Mname;
SQLTable[0,3] = Lname;
SQLTable[0,4] = streetaddress;
SQLTable[0,5] = city;
SQLTable[0,6] = state;
SQLTable[0,7] = zipcode;
SQLTable[0,8] = phonenumber;
SQLTable[0,9] = emailaddress;*/
/*Below is the details for the SQL connection*/
string connectstring="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\KayDB\\Kays.accdb";
OleDbConnection connection=new OleDbConnection(connectstring);
OleDbCommand command;
OleDbDataAdapter adapter;
DataTable dt = new DataTable();
string sql ="Insert into ARTIST values ('" + taxIDnummber + "','"
+ emailaddress + "','" + Fname + "','" + Mname + "','"
+ Lname + "','" + phonenumber+"','"+ Username + "','"
+ streetaddress + "','" + city + "','" +state+ "','"
+ zipcode + "')";
try
{
connection.Open();
command = new OleDbCommand(sql, connection);
MessageBox.Show("Connection Open And data added to table! ");
connection.Close();
}
catch (Exception ex)
{
MessageBox.Show("Can not open connection ! " + ex.StackTrace.ToString());
}
/*Above is the details for the SQL connection*/
}
private void btnCancel_Click(object sender, EventArgs e)
{//Cancel Button
tbCity.Clear();
tbEmailAddress.Clear();
tbFirstName.Clear();
tbLastName.Clear();
tbMiddleInitial.Clear();
tbPhoneNumber.Clear();
tbStreet.Clear();
tbTaxID.Clear();
tbZipCode.Clear();
tbUserName.Clear();
Close();//Go back to switchboard from here
}
private void btnClear_Click(object sender, EventArgs e)
{//Clear button
tbCity.Clear();
tbEmailAddress.Clear();
tbFirstName.Clear();
tbLastName.Clear();
tbMiddleInitial.Clear();
tbPhoneNumber.Clear();
tbStreet.Clear();
tbTaxID.Clear();
tbZipCode.Clear();
tbUserName.Clear();
}
}
}
OleDbCommand
иOleDbConnection
для доступа. - person stuartd   schedule 28.03.2017command.execute
или что-то в этом роде - person Nick.McDermaid   schedule 29.03.2017command.ExecuteNonQuery
, чтобы фактически выполнить ваш командный объект. Это не имеет ничего общего со строками подключения. - person Nick.McDermaid   schedule 29.03.2017System.Data.OleDb
- person Nick.McDermaid   schedule 29.03.2017