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

Thảo luận trong 'Lập trình & Đồ hoạ' bắt đầu bởi LAX Girl, 9/4/11.

  1. LAX Girl

    LAX Girl Mod vô dụng ‍♂️ Moderator GVN Veteran

    Tham gia ngày:
    23/8/06
    Bài viết:
    3,831
    Nơi ở:
    Wonder Land
    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 :(
    [​IMG]
     
  2. Bối Bối

    Bối Bối C O N T R A

    Tham gia ngày:
    20/2/06
    Bài viết:
    1,859
    Nơi ở:
    Ha Noi, Vietnam,
  3. Leo3Cu

    Leo3Cu Mr & Ms Pac-Man

    Tham gia ngày:
    20/11/10
    Bài viết:
    209
    Nơi ở:
    zz
    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: 14/4/11
  4. tomhellboy

    tomhellboy Mr & Ms Pac-Man

    Tham gia ngày:
    12/2/06
    Bài viết:
    107
    Nơi ở:
    Bình Dương
    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
     

Chia sẻ trang này