PDA

View Full Version : مشکل در اتصال به دیتابیس Access



پیام حیاتی
جمعه 04 اسفند 1391, 20:40 عصر
سلام
من در اتصال برنامه به دیتابیس دچار مشکل شدم ، پروژه رو پیوست کردم .
این کدهای من هست :


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

namespace Payam_Dictionary
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
OleDbConnection CON;
OleDbDataAdapter ADP;
DataSet DataSet = new DataSet();
string ConStr = "Provider=Microsoft.JET.OLEDB.4.0;Data Source=Words.mdb";
string SelStr = "SELECT * From CSDic";
int FaSearch = -1;

private void Form1_Load(object sender, EventArgs e)
{
this.Enabled = false;
}

private void RAD1_CheckedChanged(object sender, EventArgs e)
{
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(new CultureInfo("en-US"));
BOX1.RightToLeft = RightToLeft.No;
BOX2.RightToLeft = RightToLeft.Yes;

BOX1.Text = null;
BOX2.Text = null;
LBFound.Text = null;
BOX1.Focus();
}

private void RAD2_CheckedChanged(object sender, EventArgs e)
{
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(new CultureInfo("fa-IR"));
BOX1.RightToLeft = RightToLeft.Yes;
BOX2.RightToLeft = RightToLeft.No;

BOX1.Text = null;
BOX2.Text = null;
BOX1.Focus();
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
CON.Close(); DataSet.Clear();
Application.Exit();
}

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
BOX1.Focus();
}
private void SEARCH()
{
try
{
int cn = DataSet.Tables["CSDic"].Rows.Count;
if (BOX1.Text.Trim() != null && BOX2.Text == "")
//if (BOX1.Text.Trim() != null && BOX2.Text = "")
{
Pr.Maximum = cn;
P.Visible = false;

for (int m = 0; m < cn; m++)
{
Pr.Value = m;
Application.DoEvents();

//English 2 Farsi
if (RAD1.Checked)
{
string EngWord = DataSet.Tables["CSDic"].Rows[m].ItemArray[0].ToString().ToLower();
if (EngWord == BOX1.Text.ToLower())
{
BOX2.Text = DataSet.Tables["CSDic"].Rows[m].ItemArray[1].ToString().ToLower();
LBFound.Text = EngWord;
Pr.Value = cn; P.Visible = true; break;
}
}

// Farsi 2 English
if (RAD2.Checked)
{
string FaWord = DataSet.Tables["CSDic"].Rows[m].ItemArray[0].ToString().ToLower();
if (FaWord == BOX1.Text.ToLower())
{
BOX2.Text = DataSet.Tables["CSDic"].Rows[m].ItemArray[1].ToString().ToLower();
LBFound.Text = FaWord;
Pr.Value = cn; P.Visible = true; break;
}
else
{
FaSearch = FaWord.IndexOf(BOX1.Text.ToLower());

if (FaSearch != -1)
{
BOX2.Text = BOX2.Text = DataSet.Tables["CSDic"].Rows[m].ItemArray[0].ToString().ToLower();
LBFound.Text = DataSet.Tables["CSDic"].Rows[m].ItemArray[1].ToString().ToLower();
Pr.Value = cn; P.Visible = true; break;
}
}
}
}
groupBox1.Enabled = true;
BOX1.Enabled = true;
checkBox1.Enabled = true;

}
}
catch { };
}

private void Box1_KeyUp(object sender, KeyEventArgs e)
{
BOX2.Text = "";

if (checkBox1.Checked)
{
groupBox1.Enabled = false;
SEARCH();
}
else if (e.KeyCode == Keys.Enter)
{
BOX1.Enabled = false;
checkBox1.Enabled = false;
groupBox1.Enabled = false;
SEARCH();
}
}

private void timer1_Tick(object sender, EventArgs e)
{
timer1.Enabled = false;
try
{
CON = new OleDbConnection(ConStr);
ADP = new OleDbDataAdapter(SelStr, CON);
ADP.Fill(DataSet, "CSDic");
}
catch
{
MessageBox.Show("بانک اطلاعاتی برنامه پیدا نشد", "'Words.mdb' not found", MessageBoxButtons.OK, MessageBoxIcon.Error); Close();
}
this.Enabled = true;
BOX1.Focus();
}

private void BOX1_TextChanged(object sender, EventArgs e)
{

}
}
}


دریافت برنامه (http://www.ahvazsell.com/Test/Payam_Dictionary.rar)

تشکر

docendo
جمعه 04 اسفند 1391, 21:43 عصر
به احتمال زیاد دیتابیس Words.mdb در جای خودش نیست
فایل Words.mdb را در داخل فولدر Debug بریزید درست میشود برای اینکه بعد از کمپایل کردن برنامه تان بصورت پیش فرض از فولدر Debug اجرا میشود

پیام حیاتی
جمعه 04 اسفند 1391, 22:55 عصر
به احتمال زیاد دیتابیس Words.mdb در جای خودش نیست
فایل Words.mdb را در داخل فولدر Debug بریزید درست میشود برای اینکه بعد از کمپایل کردن برنامه تان بصورت پیش فرض از فولدر Debug اجرا میشود

ممنونم،مشکل حل شد ، اما الآن نمیدونم چرا عملیات ترجمه در هر دو حالت انجام نمی گیره؟

پیام حیاتی
شنبه 05 اسفند 1391, 12:38 عصر
کسی نیست کمکم کنه؟ :ناراحت:

docendo
شنبه 05 اسفند 1391, 12:50 عصر
کسی نیست کمکم کنه؟ :ناراحت:

فکر کنم اشکال برنامه تان در کد زیر باشد اگر خوب توجه کنید BOX2.Text = BOX2.Text

BOX2.Text = BOX2.Text = DataSet.Tables["CSDic"].Rows[m].ItemArray[0].ToString().ToLower();

docendo
شنبه 05 اسفند 1391, 20:34 عصر
چی شد برنامه ات درست شد یا نه

پیام حیاتی
شنبه 05 اسفند 1391, 22:47 عصر
چی شد برنامه ات درست شد یا نه

ممنون از پیگیری ، نه متاسفانه با تغییر قسمتی که گفتید هم درست نشد :


BOX2.Text = DataSet.Tables["CSDic"].Rows[m].ItemArray[0].ToString().ToLower();

docendo
شنبه 05 اسفند 1391, 22:52 عصر
با درود

درصورت امکان برنامه تان را بگذارید شاید تونستم کمکتان بکنم
(گفتم شاید قولی نمیدهم. چون دوست ندارم الکی به کسی قول بدهم)

پیام حیاتی
شنبه 05 اسفند 1391, 23:42 عصر
با درود

درصورت امکان برنامه تان را بگذارید شاید تونستم کمکتان بکنم
(گفتم شاید قولی نمیدهم. چون دوست ندارم الکی به کسی قول بدهم)

ممنونم ، برنامه در پست اول قرا دادم.

دریافت برنامه (http://ahvazsell.com/Test/Payam_Dictionary.rar)

docendo
یک شنبه 06 اسفند 1391, 02:22 صبح
برنامه تان کم و کسری زیاد دارد باید بمرور درستش کنید
اما اینکه برنامه تان از دیتابیس بخونه درستش کردم بقیه راخودتان میتونید درستش کنید

شما کد مربوط به جستجو را فراموش کرده بودید که بدین صورت در زیر checkBox1 قرار دهید



private void checkBox1_CheckedChanged(object sender, EventArgs e)

{

BOX1.Focus();

SEARCH();

}