Hỏi về C# (nâng cao) | Anh chị em nào pro giúp mình với

  • Thread starter Thread starter LAX Girl
  • Ngày gửi Ngày gửi
Mình đã giải quyết được vấn đề với form config, nhưng bây giờ bị cái lỗi mà ko nghĩ ra phương pháp nào để giải quyết, đó là Crystal Report.
Cái Crystal Report khi mình tạo nó bắt phải select Server để lấy database. Như vậy khi chạy trên máy mình thì ok, nhưng đem sang máy khác chạy là dính ngay cái tên server :(
loi.jpg
 
Vì khi mang qua máy # thì ServerName thay đổi nên mới có thông báo đó.
Code này trong project cũ của minh bạn tham khảo thử.
Mã:
            rptLoad rpt = new rptLoad();
            ConnectionInfo conn = new ConnectionInfo();
            TableLogOnInfo tablelog = new TableLogOnInfo();
            conn.ServerName = @"Tên server";
            conn.IntegratedSecurity = true;
            conn.DatabaseName = @"Tên DB";

            // Khai báo thuộc tính cho TableLogInfo
            tablelog.ConnectionInfo = conn;

            // Duyệ qua tất cả các Table trong DB để lấy dữ liệu
            foreach (Table tablename in rpt.Database.Tables)
            {
                tablename.ApplyLogOnInfo(tablelog);
            }
            // Hiển thị dữ liệu
            rptViewer.ReportSource = rpt;
            rptViewer.Refresh();
            rpt.Dispose();
Quên nhớ thêm 2 references này
using CrystalDecisions.Shared;
using CrystalDecisions.CrystalReports.Engine;
 
Chỉnh sửa cuối:
Mình đã giải quyết được vấn đề với form config, nhưng bây giờ bị cái lỗi mà ko nghĩ ra phương pháp nào để giải quyết, đó là Crystal Report.
Cái Crystal Report khi mình tạo nó bắt phải select Server để lấy database. Như vậy khi chạy trên máy mình thì ok, nhưng đem sang máy khác chạy là dính ngay cái tên server :(
loi.jpg
Cái này là do bạn set tĩnh cái chuỗi connectionString ... nên lúc qua máy khác thì tất nhiên cái tên server nó khác rồi :|
Cái này có 2 cách giải quyết :

1./ Chuỗi connection :

connectionString="data source="insert here";Initial Catalog=DefectTrackingSystem;User ID=sa;Password=111111";
cái chỗ insert here bạn có thể thay = dấu . hoặc là localhost (nó sẽ tự tìm đến cái tên server có trong máy ).

2./ Set lại connection string dưới web.config :

Khi bạn tạo 1 WebApplication viết bằng C# thì sẽ có 1 file tên là web.config . Bạn mở nó ra và tìm đến thẻ <connectionStrings>
Sau đó bạn thêm vào 1 dòng thế này : (mình lấy ví dụ máy mình nhé )
<connectionStrings>
<add name="conStr" connectionString="data source=.\SQLEXPRESS;Initial Catalog=DefectTrackingSystem;User ID=sa;Password=111111"/>
</connectionStrings>

rồi ở class C# bạn không cần phải viết cái connectionString nữa mà chỉ cấn viết thế này :

String conStr = System.Configuration.ConfigurationManager.ConnectionStrings["conStr"].ConnectionString;

thế là lấy được connectionString để select các bảng rồi .Và khi đem qua máy khác bạn chỉ việc xuống web.config tìm đến thẻ <connectionStrings> sửa lại cho đúng cấu hình SQL bên máy đó thôi
 
Back
Top