من که چیزی نمی بینم؟:18:
Printable View
من که چیزی نمی بینم؟:18:
یعنی عکسی که آپلود کردمو به شما نشون نمیده؟:41:نقل قول:
پس چی کار کنم؟
اسم جدولتون را هم اضافه کنید
کد:da.Fill(dt, "TableName");
ببخشید عکس رو ندیده بود(مشکل از این مرور گر پوکیده بود)
ولی خوب چندان چیزی در این عکس معلوم نیست.متن خطلا میگه Employee اشتباهه. احتمالا بد نوشتینش و یا یه چیز دیگه هست.
رشته ی فرمانتون چیه؟
سلام
بازم ممنون که جواب میدید.
این کلاسیه که ازش برای اتصال به دیتابیس استفاده می کنم:
اسم جدولمم درست نوشتم.کد:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
using System.IO;
namespace ExportLabel
{
publicclassmyDataAccess
{
privatestring LdfPath;
privatestring MdfPath;
privatestring cs;
privatestring ComStr;
publicstring DBName = "Teramdb.mdf";
publicstring ServerName = "";
publicstring userName = "";
publicstring password = "";
privateSqlConnection con;
privateSqlCommand cmd;
privateSqlDataAdapter da;
public myDataAccess()
{
cs = "Data Source=.\\SQLEXPRESS;Integrated security=true;user Instance=true";
MdfPath = string.Format(@"{0}\{1}.mdf", Environment.CurrentDirectory,DBName);
LdfPath = string.Format(@"{0}\{1}_log.ldf", Environment.CurrentDirectory,DBName);
ComStr = string.Format("EXEC sp_attach_db @dbname = N'{0}'," +
"@filename1 = N'{1}',@filename2 = N'{2}';", DBName, MdfPath, LdfPath);
con = newSqlConnection(cs);
cmd = newSqlCommand(ComStr,con);
da = newSqlDataAdapter();
cmd.Connection = con;
da.SelectCommand = cmd;
}
publicvoid connect()
{
con.Open();
}
publicvoid Disconnect()
{
con.Close();
}
publicDataTable select(string sql)
{
DataTable dt = newDataTable();
cmd.CommandText = sql;
da.Fill(dt);
return dt;
}
publicvoid docommand(string sql)
{
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
}
}
}
اینم دستوری که استفاده کردم:
کد:privatevoid btnOk_Click(object sender, EventArgs e)
{
myDataAccess da = newmyDataAccess();
//1- Connect To DB server
da.connect();
//2- Select Employee who password is same as textbox text
string s = "Select * From Employee where epassword='{0}'";
s = string.Format(s, txtPass.Text);
DataTable dt = newDataTable();
dt = da.select(s);
da.Disconnect();
//3- If dt has form go to main form
if (dt.Rows.Count > 0)
{
frmMain fm = newfrmMain();
fm.ShowDialog();
this.Close();
}
//4- else message error
else
{
MessageBox.Show(".کلمه عبور اشتباه است");
i++;
if (i == 3)
{
this.Enabled = false;
this.Cursor = System.Windows.Forms.Cursors.WaitCursor;
this.MaximizeBox = this.MinimizeBox = false;
}
1 )نام دیتابیستان رو بدون پسوندش بنویسید یعنی Teramdb
2) آن کدی که من نوشتم فقط مخصوص اتچ کردن بود و نباید با کدهایی دیگر ادغام شود.
بنابراین در اینجا شما رشته ی اتصالی فقط برای اتچ کردن دارید و معلوم است که نمی توانید به دیتابیستان متصل شوید.
3)پیشنهاد می کنم
برای اتچ کردن از آن متدی که برای اتچ کردن گذاشتم استفاده کنید و کدهای اتچ را با کدهای اتصال به دیتابیس
جدا کنید .
و برای اتصال هم حدودا همین کدها می تونند جوابگو باشند ولی با کمی تغییرات مثلا در رشته ی اتصال Initial Catalog رو اضافه کنید.
سلامنقل قول:
پس کجای برنامه اتچ کردن رو انجام بدم؟
هنگام شروع برنامه(شاید توی FormLoad ).نقل قول:
پس کجای برنامه اتچ کردن رو انجام بدم؟
سلام به همه.
من از قسمت server Explorer روی دیتابیسم راست کلیک کردم.گزینه ی Modify Connection... رو انتخاب کردم و database file name رو از پوشه دیباگ آدرس دهی کردم. به این صورت:\bin\Debug\Teramdb.mdf و ظاهرا مشکلم حل شد. حالا می خوام بدونم واقعا ایراد کار این بوده؟ یا زیادی خوش خیالم؟