PDA

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



KazemAsgari
سه شنبه 01 فروردین 1385, 21:08 عصر
با سلام
من دارم یک دیکشنری با سی شارپ و با استفاده از دات نت 2005 می نویسم. حالا یک کلاس درست کردم برای لغات که تمام خصوصیات و متد های لازم برای یک لغت مانند اضافه کردن و ... را درون آن قرار دادم تا هروقت می خواهم یک لغت را اضافه کنم از ابتدا یک شیئ از روی آن کلاس ساخته و سپس Property های آن را تنظیم کنم و متد CreateVocab() را فراخوانی کنم. پیاده سازی این کلاس به این شرح است :


public class Vocab
{
private string vocEn;
private string vocFa;
private string vocEnDt;
private string vocAr;
private string vocArDt;
private string vocFaDt;

public string VocabEnglish
{
get
{
return vocEn;
}
set
{
vocEn = value;
}
}

public string VocabFarsi
{
get
{
return vocFa;
}
set
{
vocFa = value;
}
}

public string VocabEnglishDetails
{
get
{
return vocEnDt;
}
set
{
vocEnDt = value;
}
}

public string VocabArabic
{
get
{
return vocAr;
}
set
{
vocAr = value;
}
}

public string VocabArabicDetails
{
get
{
return vocArDt;
}
set
{
vocArDt = value;
}
}

public string VocabFarsiDetails
{
get
{
return vocFaDt;
}
set
{
vocFaDt = value;
}
}

public string CreateVocab()
{

// Creating Connection
SqlConnection Con = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\DicDB.mdf;Integrated Security=True;User Instance=True");

try
{
Con.Open();

// Sending and Saving Data to DicDB Database
string strCmd = "INSERT INTO tblVocabs" +
"(vocEn,vocEnDt,vocFa,vocFaDt,vocAr,vocArDt)" +
"VALUES('" + vocEn + "','" + vocEnDt + "','" + vocFa + "','" + vocFaDt + "','" + vocAr + "','" + vocArDt + "')";
SqlCommand Cmd = new SqlCommand(strCmd, Con);

Cmd.ExecuteNonQuery();

Con.Close();
// Returning End Message
string strEM = "Creating Vocabulary is Successfully Completed ...";
return strEM;
}
catch (Exception e)
{
return e.Message;

}

}
}


حالا وقتی متد CreateVocab() را فراخانی می کنم پیام کامل شدن اضافه کردن لغت را برمی گرداند ولی در واقع تغییری در جدول مشاهده نمی شود.
به نظر شما مشکل از کجاست؟ آیا ممکن است چون دیتابیس را در کنار بقیه فایل ها قرار دادم و برای ساختن آن از SQLEXPRESS و محیط خود دات نت استفاده کردم و از Enterprise Manager استفاده نکردم، این اتفاق رخ داده باشد؟اگر این گونه است راه حلش چیست؟ در غیر این صورت مشکل از کجاست؟
با تشکر و سپاس گزاری بسیار فراوان

KazemAsgari
جمعه 04 فروردین 1385, 15:38 عصر
لطف کنید حداقل احتمالات خود را بگویید.
متشکرم.

m-heidari
چهارشنبه 09 فروردین 1385, 01:52 صبح
لطف کنید حداقل احتمالات خود را بگویید.
متشکرم.

من دقیقا متوجه مشکل شما نشدم اما احتمال میدم که مشکل از Query شما باشه برای اینکه مطمئن بشید که Query شما درست کارمیکنه همین Query رو با نرم افزار جانبی SQL Server 2000 که Enterprise Manager نام داره امتحان کنید.

در ضمن بهتره قسمت اخر کدتون رو هم تغییر بدید....



public class Vocab
{
private string vocEn;
private string vocFa;
private string vocEnDt;
private string vocAr;
private string vocArDt;
private string vocFaDt;

public string VocabEnglish
{
get
{
return vocEn;
}
set
{
vocEn = value;
}
}

public string VocabFarsi
{
get
{
return vocFa;
}
set
{
vocFa = value;
}
}

public string VocabEnglishDetails
{
get
{
return vocEnDt;
}
set
{
vocEnDt = value;
}
}

public string VocabArabic
{
get
{
return vocAr;
}
set
{
vocAr = value;
}
}

public string VocabArabicDetails
{
get
{
return vocArDt;
}
set
{
vocArDt = value;
}
}

public string VocabFarsiDetails
{
get
{
return vocFaDt;
}
set
{
vocFaDt = value;
}
}

public string CreateVocab()
{

// Creating Connection
SqlConnection Con = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\DicDB.mdf;Integrated Security=True;User Instance=True");

try
{
Con.Open();

// Sending and Saving Data to DicDB Database
string strCmd = "INSERT INTO tblVocabs" +
"(vocEn,vocEnDt,vocFa,vocFaDt,vocAr,vocArDt)" +
"VALUES('" + vocEn + "','" + vocEnDt + "','" + vocFa + "','" + vocFaDt + "','" + vocAr + "','" + vocArDt + "')";
SqlCommand Cmd = new SqlCommand(strCmd, Con);

string strEm = string.Empty;

if (Cmd.ExecuteNonQuery() != 0)
{
Con.Close();
// Returning End Message
strEM = "Creating Vocabulary is Successfully Completed ...";
}
else
{
strEM = "Creating Vocabulart is Failer";
}
Con.Close();
return strEm;
}
catch (Exception e)
{
return e.Message;

}

}
}

KazemAsgari
چهارشنبه 09 فروردین 1385, 09:39 صبح
با سلام و تشکر
من این کار را در Enterprise Manager انجام دادم و این Query در آنجا درست کار می کند.
و با اینکه پیام Creating Vocabulary is Successfully Completed را بر می گرداند ولی ردیفی در جدول ایجاد نمی شود.
با تشکر