PDA

View Full Version : ارتباط با کریستال ریپورتی که به دو database متصل است



2farsoft
یک شنبه 21 تیر 1388, 14:23 عصر
با سلام

من در CR ریپورتی ساخته ام که با دو database مجزا کار می کند ولی در داخل کد برنامه برای تعریف ConnectionInfo دچار مشکل هستم و هنگام Run کردن برنامه برای حداقل یکی از Database ها username/pass می خواهد.
لطفاً در مورد ایجاد دو connection برای اتصال به این دو DB راهنمایی نمایید.

morteza_ghn
یک شنبه 21 تیر 1388, 15:02 عصر
سلام دوست عزیز من درست متوجه نشدم بنظ ر من هر چند تا کانکشن که باشه اونا رو در یک dataset بریز بعد دیتاست رو به کریستال بفرست

2farsoft
یک شنبه 21 تیر 1388, 15:26 عصر
من از dataset استفاده نکردم
روش من به صورت زیر است:


protectedvoid Page_Load(object sender, EventArgs e)
{

ConnectionInfo con1 = newConnectionInfo();
con1.ServerName = "server name";
con1.DatabaseName = "Db1";
con1.UserID = "userID1";
con1.Password = "xxxx";

ConnectionInfo con2 = newConnectionInfo();
con2.ServerName = "server name";
con2.DatabaseName = "Db2";
con2.UserID = "userID2";
con2.Password = "XXXXX";

setlogin(con1, con2);

}
privatevoid setlogin(ConnectionInfo con1, ConnectionInfo con2)
{
CrystalReportViewer1.LogOnInfo[0].ConnectionInfo = con1;
CrystalReportViewer1.LogOnInfo[1].ConnectionInfo = con2;
//Or
//TableLogOnInfos t = CrystalReportViewer1.LogOnInfo;
//foreach (TableLogOnInfo t1 in t)
//{
// if (t1.ConnectionInfo.DatabaseName == "Db1")
// {
// t1.ConnectionInfo = con1;
// }
// if (t1.ConnectionInfo.DatabaseName == "Db2")
// {
// t1.ConnectionInfo = con2;
// }
//}
}


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

2farsoft
دوشنبه 22 تیر 1388, 11:40 صبح
من در مورد استفاده از dataset، جستجو کردم و کد زیر را پیدا کردم



CrystalReport1 oRpt = new CrystalReport1();
oRpt.SetDataSource (ds);


ولی در Asp.net نمی توانم به crystalreport1 دسترسی داشته بشم و داخل کد اونو نمیشناسه

دوستان لطفاً در مورد ارتباط dataset با کریستال در ASP.net یا هر روشی که من بتونم به دو تا DB ،متصل بشم راهنمایی کنید.

2farsoft
دوشنبه 22 تیر 1388, 14:23 عصر
publicvoid BindReport()
{
SqlCommand MyCommand = newSqlCommand();
string strConnection = System.Configuration.ConfigurationManager.Connecti onStrings["First DB conString"].ConnectionString;
SqlConnection Cnn = newSqlConnection(strConnection);
MyCommand.Connection = Cnn;
MyCommand.CommandText = "Select * from table1";
MyCommand.CommandType = CommandType.Text;
SqlDataAdapter MyDA = newSqlDataAdapter();
MyDA.SelectCommand = MyCommand;
DataSet1 myDS = newDataSet1();
//fill table1 from DB1
MyDA.Fill(myDS, "table1");
//now the other DB
strConnection = System.Configuration.ConfigurationManager.Connecti onStrings["Second DB conString"].ConnectionString;
Cnn = newSqlConnection(strConnection);
MyCommand.CommandText = "Select * from table2";
//fill table2 from DB2
MyDA.Fill(myDS, "table2");
ReportDocument rep = newReportDocument();
rep.Load(Server.MapPath("CrystalReport1.rpt"));
rep.Database.Tables["table1"].SetDataSource(myDS);
rep.Database.Tables["table2"].SetDataSource(myDS);
CrystalReportViewer1.ReportSource = rep;
CrystalReportViewer1.DataBind();
}

جواب داد.