+2 امتیاز

سلام خسته نباشید 

من یه برنامه نوشتم اطلاعات رو در access به راحتی ثبت میکنه ولی وقتی با آموزش پرس و جو در دیتابیس Access پیش میرم این خطا رو میده :

اسم بانک من : dbbank1

اسم جدول من : tbl_bank1

اینم کد بنده :

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

namespace Bank1
{
    public partial class edit1 : Form
    {
        private OleDbConnection connection;
        private OleDbCommand command;
        private OleDbDataAdapter adapter;
        private DataSet dataset;
        private string ye1;
        private string dou2;
        private string seh3;
        private string chahar4;
        private string panj5;
        private string sheh6;
        private string haft7;
        private string hasht8;
        private string noh9;

        private int position;

        public edit1()
        {
            InitializeComponent();
        }

        private void edit1_Load(object sender, EventArgs e)
        {
            connection = new OleDbConnection();
            command = new OleDbCommand();
            adapter = new OleDbDataAdapter();
            dataset = new DataSet();

            connection.ConnectionString =
                 @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:dbbank1.accdb;" +
                "Persist Security Info=False";

            command.Connection = connection;
            command.CommandText = "SELECT * FROM tbl_bank1";

            adapter.SelectCommand = command;

            try
            {
                adapter.Fill(dataset, "dbbank1");
            }
            catch (OleDbException)
            {
                MessageBox.Show("Error occured while connecting to database.");
                Application.Exit();
            }

            ShowValuesOfRow(0);
        }

        private void ShowValuesOfRow(int pos)
        {
            DataRow row = dataset.Tables["tbl_bank1"].Rows[pos];
            position = pos;

            ye1 = row["yekmelyon_reyal1"].ToString();
            dou2 = row["pansadhezar_reyal2"].ToString();
            seh3 = row["sadhezar_reyal3"].ToString();
            chahar4 = row["panjahhezar_reyal4"].ToString();
            panj5 = row["bisthezar_reyal5"].ToString();
            sheh6 = row["dahhezar_reyal6"].ToString();
            haft7 = row["panjhezar_reyal7"].ToString();
            hasht8 = row["dohezar_reyal8"].ToString();
            noh9 = row["hezar_reyal9"].ToString();

            txt_Tedad1.Text = ye1;
            txt_Tedad2.Text = dou2;
            txt_Tedad3.Text = seh3;
            txt_Tedad4.Text = chahar4;
            txt_Tedad5.Text = panj5;
            txt_Tedad6.Text = sheh6;
            txt_Tedad7.Text = haft7;
            txt_Tedad8.Text = hasht8;
            txt_Tedad9.Text = noh9;
        }
    }
}

 

--------------------------------

اینم تصویری از خطای برنامه :

---------------------

 

ممنون میشم کمکم کنید و بفرمایید مشکل از کجاست و چه تغییراتی باید بدم ممنون

بسته شده

3 پاسخ

+2 امتیاز
 
بهترین پاسخ

دوست خوبم در کد بالا دستور SQL درست هست ولی چرا در سورس کدی که ضممیه کردید در پاسخ قبلی بازم به صورت نادرست نوشتید ، دستور رو به صورت زیر نوشتید : 

command.CommandText = "SELECT * FROM dbbank1";

به کد زیر تغییر بدین : 

command.CommandText = "SELECT * FROM tbl_bank1";

همچنین متد ShowValuesOfRow رو به صورت زیر باز نویسی کنید :

 if (this.dataset.Tables["tbl_bank1"] != null && this.dataset.Tables["tbl_bank1"].Rows.Count-1 >= pos)
            {

                DataRow row = dataset.Tables["tbl_bank1"].Rows[pos];

                position = pos;

                ye1 = row["yekmelyon_reyal1"].ToString();
                dou2 = row["pansadhezar_reyal2"].ToString();
                seh3 = row["sadhezar_reyal3"].ToString();
                chahar4 = row["panjahhezar_reyal4"].ToString();
                panj5 = row["bisthezar_reyal5"].ToString();
                sheh6 = row["dahhezar_reyal6"].ToString();
                haft7 = row["panjhezar_reyal7"].ToString();
                hasht8 = row["dohezar_reyal8"].ToString();
                noh9 = row["hezar_reyal9"].ToString();

                txt_Tedad1.Text = ye1;
                txt_Tedad2.Text = dou2;
                txt_Tedad3.Text = seh3;
                txt_Tedad4.Text = chahar4;
                txt_Tedad5.Text = panj5;
                txt_Tedad6.Text = sheh6;
                txt_Tedad7.Text = haft7;
                txt_Tedad8.Text = hasht8;
                txt_Tedad9.Text = noh9;

            }

 

+1 امتیاز

اینطور بنویس ببینم مشکلتون حل میشه :

DataRow row = new DataRow();
row = dataset.Tables["tbl_bank1"].Rows[pos];
شما همین کدتون رو میخواین اصلاح کنید؟ اگه اینطور نیست و فقط قصد یادگیری چهار عمل اصلی در بانک اکسس رو دارین این آموزش رو ببینید :

http://www.w3-farsi.com/%D8%A7%D9%86%D8%AC%D8%A7%D9%85-%D8%B9%D9%85%D9%84%DB%8C%D8%A7%D8%AA-%D9%87%D8%A7%DB%8C-%D8%A7%D9%86%D8%AA%D8%AE%D8%A7%D8%A8-%D8%8C-%D8%AF%D8%B1%D8%AC-%D8%8C-%D8%AD%D8%B0%D9%81-%D9%88-%D9%88%DB%8C/
توسط (3,483 امتیاز) 6 13 87
من میخوام همین کد رو اصلاح کنم ممنون میشم یهکمکی کنید
توسط (133 امتیاز) 1
+2 امتیاز

سلام ، شما اطلاعات رو با استفاده از دستور زیر در جدولی به نام dbbank1 قرار دادین : 

adapter.Fill(dataset, "dbbank1");

اما در کد زیر قصد دارید داده ها رو از جدولی به نام tbl_bank1 بدست بیارید ، چون جدولی با این نام وجود نداره خطا میده : 

DataRow row = dataset.Tables["tbl_bank1"].Rows[pos];

برای اصلاح کد نام جدول رو در قسمت قبلی به tbl_bank1 تغییر بدین 

سلام مجدد

 

آقا بخدا من هر کاری میکنم این درست  نمیشه ..

فایل پروژمو ضمیمه کردم اگر امکانش هست یه نگاهی بندازید 

ممنون میشم

 

http://s6.picofile.com/file/8187221968/Bank1.zip.html

توسط (133 امتیاز) 1
سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,924 کاربر

دسته بندی ها

...