свойство connectionstring не было инициализировано. c # Доступ к базе данных
570 просмотра
2 ответа
Я не могу решить это, я пытаюсь подключиться к моей базе данных доступа, но я просто не могу и продолжаю получать ошибку. Кто-нибудь может мне помочь
namespace WindowsFormsApplication3
{
public partial class Form2 : Form
{
private OleDbConnection connection = new OleDbConnection();
public Form2()
{
InitializeComponent();
string executable = System.Reflection.Assembly.GetExecutingAssembly().Location;
string path = (System.IO.Path.GetDirectoryName(executable));
AppDomain.CurrentDomain.SetData("DataDirectory", path);
OleDbConnection connect = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Database.accdb;User Id=admin; Password=;");
}
private void button4_Click(object sender, EventArgs e)
{
Form3 f3 = new Form3(); // Instantiate a Form3 object.
f3.Show(); // Show Form3 and
this.Close(); // closes the Form2 instance
}
private void button1_Click(object sender, EventArgs e)
{
try
{
connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
command.CommandText= "INSERT into Dataaa ([FirstName],[LastName],[ICNO],[Address],[Loan],[Percent],[Payback],[StartDate],[EndDate],[Monthly],[PaymentType],[Remark]) values ('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "','" + textBox6.Text + "','" + textBox7.Text + "','" + textBox8.Text + "','" + textBox9.Text + "','" + textBox10.Text + "','" + textBox11.Text + "','" + textBox12.Text + "')";
command.ExecuteNonQuery();
MessageBox.Show("Details have been Saved.");
}
catch (Exception ex)
{
MessageBox.Show("error " + ex);
}
finally
{
connection.Close();
}
}
Автор: Akash Gill
Источник
Размещён: 05.11.2019 03:11
Ответы (2)
1 плюс
Проблема в том, что вы никогда не передаете строку соединения в connection
свойство, поэтому генерируется исключение.
В настоящее время вы инициализируете локальную переменную внутри конструктора, которая не используется. Все, что нужно, это удалить локальную переменную и просто инициализировать свойство правильной строкой соединения.
Чтобы решить эту проблему, просто измените ваш метод конструктора следующим образом:
public Form2()
{
InitializeComponent();
string executable = System.Reflection.Assembly.GetExecutingAssembly().Location;
string path = (System.IO.Path.GetDirectoryName(executable));
AppDomain.CurrentDomain.SetData("DataDirectory", path);
this.connection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Database.accdb;User Id=admin; Password=;");
}
И удалите инициализацию для свойства, чтобы оно было следующим:
private OleDbConnection connection;
Как сказал Оуэн Полинг, вы открыты для атак с использованием SQL-инъекций, поэтому я настоятельно рекомендую вам просмотреть эту статью, чтобы не быть открытыми для атак. В основном, глядя на раздел параметризованных запросов статьи.
Автор: David Ford Размещён: 03.06.2016 11:190 плюса
У вас есть как личная переменная (с именем «соединение») для, так и локальная переменная (с именем «соединение») для OleDbConnection
. Вы инициализируете последний строкой соединения, но используете первый для запуска вашей команды.
В вашем методе Form2 измените:
OleDbConnection connect = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Database.accdb;User Id=admin; Password=;");
чтобы:
connection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Database.accdb;User Id=admin; Password=;");
Также используйте параметры запроса для вашей команды, чтобы вы не были открыты для атак с использованием SQL-инъекций.
Автор: Owen Pauling Размещён: 03.06.2016 11:20Вопросы из категории :
- c# Преобразовать десятичную в двойную?
- c# Как рассчитать чей-то возраст в C #?
- c# Как вы сортируете словарь по значению?
- c# В чем разница между int и Integer в Java и C #?
- c# Как создать новый экземпляр объекта из Типа
- ms-access Microsoft JET SQL Query Logging или «Как отладить программу моего клиента?»
- ms-access Как устранить предупреждение о безопасности при запуске проекта ms-access
- ms-access Как исправить возможные повреждения БД?
- ms-access Экспорт результатов кросс-таблицы в Excel из MS Access
- ms-access MS-Access, VBA и обработка ошибок
- connection-string Настройка ASP.NET Development Server для подключения к базе данных postgres
- connection-string SQL Server запрос работает медленно из Java
- connection-string Что такое строка подключения драйвера JDBC MySQL?
- connection-string Как я могу получить доступ к SQLite с помощью C #?
- connection-string Java JDBC - Как подключиться к Oracle, используя имя службы вместо SID
- access Android: как фрагмент может принять глобальную переменную Activity
- access Предоставить предварительно подписанный стиль URL-адрес доступа ко всему каталогу
- access Обновление базы данных Access через лист Excel
- access Входное изображение на внешнем интерфейсе доступа, подключенном к серверу SQL
- access Как определить, что флажок включен и выключен, и записать эти изменения обратно в источник данных?