Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> conn с БД Access 
:(
    Опции темы
safff24
Дата 22.6.2007, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 22.6.2007

Репутация: нет
Всего: нет



Ребят подскажите новичку-второй день на C#. Не могу настроить соединение с БД Access- пишет что в Fill как минимум одно из нужных значений не указано. Все варианты перебрал-не катит. Взгляните

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;


namespace Personen
{
    public partial class Form1 : Form
    {
        string commandText = "Select ID, Vorname, Name, Geburtsdatum from Angaben";
        string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source = D:\\daten.mdb";

        public Form1()
        {
            InitializeComponent();
            OleDbConnection conn = new OleDbConnection(connectionString);
            conn.Open();
            OleDbCommand myCommand = new OleDbCommand();
            myCommand.Connection = conn;
            myCommand.CommandText = commandText;
            OleDbDataAdapter da = new OleDbDataAdapter(myCommand);
            DataSet ds = new DataSet();
            da.TableMappings.Add("Table", "Angaben");
            da.Fill(ds,"Angaben");

            txtID.DataBindings.Add("Text", ds, "Angaben.ID");
            txtVorname.DataBindings.Add("Text", ds, "Angaben.Vorname");
            txtName.DataBindings.Add("Text", ds, "Angaben.Name");
            txtGeb.DataBindings.Add("Text", ds, "Angaben.Geburtsdatum");

            conn.Close();
        }
PM MAIL   Вверх
thomas
Дата 22.6.2007, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 35
Всего: 65



safff24, 
Привет.
А зачем всё писать в конструктор формы? Когда это всё можно прописать в событие загрузки формы. Будет удобнее.
Потом наверное не плохо указать всё же полный путь к БД. (хотя не критично).
Я бы написал примерно так:
Код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;


namespace Personen
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private string sql;
        private OleDbCommand cmd;
        private OleDbConnection con;
        private OleDbDataAdapter da;
        private DataSet ds;
        

         private void frmMyForm_Load(object sender, EventArgs e)
        {
                con = new OleDbConnection();
                con.ConnectionString = @"provider=Microsoft.Jet.oledb.4.0;" +
                                   @"data source=D:\\daten.mdb";
                ds = new DataSet();
         
                sql =  "Select ID, Vorname, Name, Geburtsdatum from Angaben";
                da = new OleDbDataAdapter(sql, con);
                da.Fill(ds, "Angaben");
       
                con.Close();
           
                txtID.DataBindings.Add("Text", ds, "Angaben.ID");
                txtVorname.DataBindings.Add("Text", ds, "Angaben.Vorname");
                txtName.DataBindings.Add("Text", ds, "Angaben.Name");
                txtGeb.DataBindings.Add("Text", ds, "Angaben.Geburtsdatum");
         }


Вся логика выполняется при загрузке формы. Как только форма загрузилась у тебя есть Дата Сет и таблица в нем. Плюс ты биндишь свои текстбоксы.


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
safff24
Дата 22.6.2007, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 22.6.2007

Репутация: нет
Всего: нет



Спасибчик. Сделал твой вариант-Только опять на Fill по тормозам- просит какое-то необходимое значение. Будем дале эксперименты рисовать
PM MAIL   Вверх
kedicik
Дата 23.6.2007, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 12.4.2007

Репутация: нет
Всего: нет



Какое сообщение поточнее? может так?
Код

           OleDbConnection conn = new OleDbConnection(connectionString);
            conn.Open();
            OleDbCommand myCommand = new OleDbCommand();
            myCommand.Connection = conn;
            OleDbDataAdapter da = new OleDbDataAdapter(myCommand);
            DataSet ds = new DataSet();
            da.SelectCommand = myCommand;

            da.Fill(ds,"Angaben");

            txtID.DataBindings.Add("Text", ds, "Angaben.ID");
            txtVorname.DataBindings.Add("Text", ds, "Angaben.Vorname");
            txtName.DataBindings.Add("Text", ds, "Angaben.Name");
            txtGeb.DataBindings.Add("Text", ds, "Angaben.Geburtsdatum");

            conn.Close();

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0716 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.