2

我使用 ADO.Net 在带有 SQL Server CE 3.5 SP2 的 .Net Framework 4.0 Client Profile 中的 C#.Net 2010 中编写了一个程序。我已经通过 Advanced Installer 打包了我的应用程序,并在安装引导程序中包含了先决条件:SQLServerCe 3.5 SP2、.Net Framework 4.0 客户端和 windows installer 3.1。我使用 Win 8 Pro,安装和运行程序没有问题,但是当它安装在另一台运行 Win XP 的 PC 上时,启动应用程序时(安装成功后)显示“OLE 错误消息”。可能是什么原因,我该如何解决?(在主表单加载时与数据库没有交互)。以下是主窗体的完整代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Globalization;

namespace StudentLoanArchives
{
    public partial class frmMain : Form
    {
        public frmMain()
        {
            InitializeComponent();
        }

    private void خروجToolStripMenuItem_Click(object sender, EventArgs e)
    {
        DialogResult dr = MessageBox.Show("آیا مطمئن هستید؟", "خروج از برنامه", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2, MessageBoxOptions.RtlReading);
        if (dr == DialogResult.Yes) Application.Exit();
    }

    private void عملیاتاولیهToolStripMenuItem_Click(object sender, EventArgs e)
    {
        string createTable = "CREATE TABLE Bank (bankName nvarchar(20) PRIMARY KEY NOT NULL)";
        DataBaseClass.MessageShow(DataBaseClass.ExecuteSQL(createTable), "عمليات با موفقيت انجام پذيرفت", "در انجام عمليات خطا رخ داد");
        createTable = "CREATE TABLE Student (studentNo nvarchar(12) PRIMARY KEY NOT NULL, studentFName nvarchar(50), studentLName nvarchar(50) NOT NULL)";
        DataBaseClass.MessageShow(DataBaseClass.ExecuteSQL(createTable), "عمليات با موفقيت انجام پذيرفت", "در انجام عمليات خطا رخ داد");
        createTable = "CREATE TABLE Loan (loanNo nvarchar(20) PRIMARY KEY NOT NULL, loanAmount nvarchar(15) NOT NULL, loanDate nvarchar(10), studentNo nvarchar(12) NOT NULL)";
        DataBaseClass.MessageShow(DataBaseClass.ExecuteSQL(createTable), "عمليات با موفقيت انجام پذيرفت", "در انجام عمليات خطا رخ داد");
        createTable = "CREATE TABLE Payment (payNo nvarchar(20) PRIMARY KEY NOT NULL, payAmount nvarchar(15) NOT NULL, bankName nvarchar(20) NOT NULL, payDate nvarchar(10) NOT NULL, branchCode nvarchar(10), branchName nvarchar(30), loanNo nvarchar(20), payComment ntext)";
        DataBaseClass.MessageShow(DataBaseClass.ExecuteSQL(createTable), "عمليات با موفقيت انجام پذيرفت", "در انجام عمليات خطا رخ داد");
    }

    private void frmMain_Load(object sender, EventArgs e)
    {
        PersianCalendar pc = new PersianCalendar();
        DateTime GregDate = new DateTime();
        GregDate = DateTime.Now;
        string month = pc.GetMonth(GregDate).ToString();
        string day = pc.GetDayOfMonth(GregDate).ToString();
        string weekday = pc.GetDayOfWeek(GregDate).ToString();
        switch (month)
        {
            case "1":
                month = "فروردين";
                break;
            case "2":
                month = "اردي بهشت";
                break;
            case "3":
                month = "خرداد";
                break;
            case "4":
                month = "تير";
                break;
            case "5":
                month = "مرداد";
                break;
            case "6":
                month = "شهريور";
                break;
            case "7":
                month = "مهر";
                break;
            case "8":
                month = "آبان";
                break;
            case "9":
                month = "آذر";
                break;
            case "10":
                month = "دي";
                break;
            case "11":
                month = "بهمن";
                break;
            case "12":
                month = "اسفند";
                break;
        }
        switch (weekday)
        {
            case "Sunday":
                weekday = "يك شنبه";
                break;
            case "Monday":
                weekday = "دوشنبه";
                break;
            case "Tuesday":
                weekday = "سه شنبه";
                break;
            case "Wednesday":
                weekday = "چهارشنبه";
                break;
            case "Thursday":
                weekday = "پنج شنبه";
                break;
            case "Friday":
                weekday = "جمعه";
                break;
            case "Saturday":
                weekday = "شنبه";
                break;
        }

        lblDate.Text = weekday + " " + day + " " + month + " " + pc.GetYear(GregDate).ToString();
        lblTime.Text = pc.GetHour(GregDate).ToString() + " : " + pc.GetMinute(GregDate).ToString() + " : " + pc.GetSecond(GregDate).ToString();
    }

    private void tmrTime_Tick(object sender, EventArgs e)
    {
        lblTime.Text = DateTime.Now.Hour.ToString() + " : " + DateTime.Now.Minute.ToString() + " : " + DateTime.Now.Second.ToString();
    }

    private void بانکToolStripMenuItem_Click(object sender, EventArgs e)
    {
        (new frmBanks()).ShowDialog(this);
    }

    private void دربارهToolStripMenuItem_Click(object sender, EventArgs e)
    {
        MessageBox.Show("برنامه ی ثبت وام های دانشجویی\nبرنامه نویس : بابک تبیانیان\nشماره ی پشتیبانی : 09358285821","درباره ی برنامه",MessageBoxButtons.OK,MessageBoxIcon.Information,MessageBoxDefaultButton.Button1,MessageBoxOptions.RightAlign);
    }

    private void کارکنانToolStripMenuItem_Click(object sender, EventArgs e)
    {
        (new frmStudents()).ShowDialog(this);
    }

    private void وامToolStripMenuItem_Click(object sender, EventArgs e)
    {
        (new frmLoans()).ShowDialog(this);
    }

    private void پرداختToolStripMenuItem_Click(object sender, EventArgs e)
    {
        (new frmPayments()).ShowDialog(this);
    }

    private void جستجوToolStripMenuItem_Click(object sender, EventArgs e)
    {
        (new frmQuery()).ShowDialog(this);
    }

    private void پشتيبانگيريToolStripMenuItem_Click(object sender, EventArgs e)
    {
        (new frmBackup()).ShowDialog(this);
    }

    private void بازگردانیاطلاعاتToolStripMenuItem_Click(object sender, EventArgs e)
    {
        (new frmRestore()).ShowDialog(this);
    }
}

}

4

0 回答 0