PDA

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



davidrobert
پنج شنبه 03 اسفند 1391, 18:35 عصر
سلام خسته نباشید من یه dll در سی شارپ ساختم و معرفه کردم این dll رو ولی نمی دانم چرا نام کاربری رو ایراد میگیری این کد dll من می باشد برای اتصال به دیتابیس که از طریق Add References معرفی کردم که کد های dll من این می باشد.
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace dllconnect
{
public class mydb
{
public static bool ShowFriendMessage = false;
public static string server = "";
public static string database = "";
public static string username="";
public static string password="";
public static bool isExpress = true;
SqlConnection con;
SqlCommand cmd;
SqlDataAdapter da;
public string lasteror = "";
public mydb()
{
con = new SqlConnection();
cmd = new SqlCommand();
da = new SqlDataAdapter();
cmd.Connection = con;
da.SelectCommand = cmd;
}
public void connect()
{
try
{
string cs = "";
if (isExpress)
{
cs = @"Data source=.\SQLEXPRESS;Attachdbfilename=|DataDirector y|\" + database + ";Integrated security=true;User Instance=true";
}
else
{
cs = @"server=" + server + ";database=" + database + ";username=" + username + ";password=" + password + "";
}
con.ConnectionString = cs;
con.Open();
}
catch (Exception ex)
{
if (!ShowFriendMessage)
lasteror = ex.Message;
else
lasteror +="اشکال در ارتباط با دیتابیس / با مدیر تماس حاصل فرمادید";
}
}
public void Disconnect()
{
con.Close();
}
public DataTable select(string sql)
{
DataTable dt = new DataTable();
try
{
cmd.CommandText = sql;
da.Fill(dt);
}
catch (Exception ex)
{
if (!ShowFriendMessage)
lasteror = ex.Message;
else
lasteror + "خطا در خواندن اطلاعات";
}
return dt;
}
public void docommand(string sql)
{
try
{
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
if (!ShowFriendMessage)
lasteror += ex.Message;
else
lasteror += "خطا در اجرا دستور";
}
}
}
}


این کد ساختاری اتصال به دیتابیس هستش که به وسیله Referencesبه برنامه اضافه میکنم نمی دانم ایراد این کد چی هستش که نام کاربری من رو ایراد میگیری از قسمت class library این کلاس رو ایجاد کردم و اضافه کردم و یه پروژه ساختم و داخل این پروژه هم این کد رو نوشتم برای اتصال به دیتا بیس
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using dllconnect;
using FMessegeBox;


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

private void button1_Click(object sender, EventArgs e)
{
dllconnect.mydb.database = "saeeddb";
dllconnect.mydb.isExpress = false;
dllconnect.mydb.server = "(local)";
dllconnect.mydb.username = "";
dllconnect.mydb.password = "";
dllconnect.mydb db = new dllconnect.mydb();
db.connect();
FMessegeBox.FarsiMessegeBox.Show(db.lasteror);
//dataGridView1.DataSource = db.select("select * from tblsaeed");
}
}
}
ممنون میشم ایراد کار من رو بگید با تشکر که چرا در دیتابیس با مشکل بر خورد میکنم اگه نام کاربری میخواد من این نام کاربری رو از کجا بفمم که به برنامه بدم ممنون میشم با تشکر.

davidrobert
جمعه 04 اسفند 1391, 15:36 عصر
ممنون میشم کسی به من کمک کنی و بگه چطور جلوه این خطا رو بگریم در برنامه Keyword not supported: 'username'. هی برنامه برای اتصال به دیتابیس به وسلیه dll این خطا رو میده اینم سورس dll هستش.
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace dllconnect
{
public class mydb
{
public static bool ShowFriendMessage = false;
public static string server="";
public static string database = "";
public static string user="";
public static string password="";
public static bool isExpress = true;
SqlConnection con;
SqlCommand cmd;
SqlDataAdapter da;


public string lasteror = "";
public mydb()
{
con = new SqlConnection();
cmd = new SqlCommand();
da = new SqlDataAdapter();
cmd.Connection = con;
da.SelectCommand = cmd;
}
public void connect()
{
try
{
string cs = "";
if (isExpress)
{
cs = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\" + database + "Integrated Security=True;User Instance=True";
}
else
{
cs = @"server=" + server + ";database=" + database + ";username=" + user + ";password=" + password + "";
}
con.ConnectionString = cs;
con.Open();
}
catch (Exception ex) خطا در این قسمت هستش
{
if (!ShowFriendMessage)
lasteror = ex.Message;
else
lasteror +="اشکال در ارتباط با دیتابیس / با مدیر تماس حاصل فرمادید";
}
}
public void Disconnect()
{
con.Close();
}
public DataTable select(string sql)
{
DataTable dt = new DataTable();
try
{
cmd.CommandText = sql;
da.Fill(dt);
}
catch (Exception ex)
{
if (!ShowFriendMessage)
lasteror = ex.Message;
else
lasteror += "خطا در خواندن اطلاعات";
}
return dt;
}
public void doCommand(string sql)
{
try
{
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
if (!ShowFriendMessage)
lasteror += ex.Message;
else
lasteror += "خطا در اجرا دستورات";
}
}
}
}

لطفا کسی بلده اینکه چطور نام کاربری که برنامه ایراد میگیری رو درست بگه یه دنیا ممنون میشم.
این دستورات برای اتصال به dll برای متصل شدن به دیتا بیس هستش لطفاً کسی میتونه کمک کنی این داره username من رو ایراد میگیری و من هم username تعریف نکردم و نمی دونم باید چطور تعریف کنیم که خطا نگیری من با دات نت و sql server 2012 کار میکنم ممنون میشم من رو کمک کنید.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using FMessegeBox;
using dllconnect;


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

private void button1_Click(object sender, EventArgs e)
{

dllconnect.mydb.database = "saeeddbDB2012";
dllconnect.mydb.isExpress = false;
dllconnect.mydb.server = "(local)";
dllconnect.mydb.user = "";
dllconnect.mydb.password = "";
dllconnect.mydb db = new dllconnect.mydb();
db.connect();
FMessegeBox.FarsiMessegeBox.Show(db.lasteror);
//dataGridView1.DataSource = db.select("select * from tblsaeed");
}
}
}

ma.rad
جمعه 04 اسفند 1391, 16:11 عصر
ساختار نسبتا درسته فقط به جای:

cs = @"server=" + server + ";database=" + database + ";username=" + username + ";password=" + password + "";

از این استفاده کن:

@Data Source=Ip;Initial Catalog=DataBase ;User ID=user;Password=pass;

ma.rad
جمعه 04 اسفند 1391, 16:40 عصر
نکته دوم چک کنید زمان کلیک رو دکمه isExpress برابر false می شه؟
نکته سوم چرا نام کاربری وپسورد رو برابر null قرار دادید؟ مگه user تعریف نکردید؟