我的程序不能在其他计算机上工作

时间:2017-11-19 08:01:50

标签: c# sql installshield janus

我在c#中编写了一个带有.net framework 4.5.2的程序,其中包括janus gridex和Elegant.ui,当然它在sql中有一个数据库。它在我的系统上运行完美但是当我在其他系统上安装它时它不会运行,没有错误。我在其他系统上安装了janus和elegant.ui和sql,但它仍然无法正常工作。有关更多信息,我使用installshield制作了我的安装文件,并使用turbo studio制作了一个包文件,但没有一个工作。 我该怎么办?你觉得我还没做什么?

p.s:我安装了我的其他程序并且工作正常,但他们没有janus和elegant.ui。

这是我的initial_form的代码:

using System;
using System.Data;
using System.Data.OleDb;
using System.IO
using System.Windows.Forms;

namespace Namayeshgah
{
public partial class Form1 : Form
{

    public static string database;

    public Form1()
    {
        InitializeComponent();
    }

    private void btn_add_Click(object sender, EventArgs e)
    {
        var frmadd = new Frm_add(0);
        frmadd.ShowDialog();
    }

    private void tbl_crm_RowDoubleClick(object sender, Janus.Windows.GridEX.RowActionEventArgs e)
    {
        var frmedit = new Frm_add(int.Parse(tbl_crm.CurrentRow.Cells[1].Value.ToString()));
        frmedit.ShowDialog();
    }

    private void btn_delete_Click(object sender, EventArgs e)
    {
        DBConnention.delete(int.Parse(tbl_crm.CurrentRow.Cells[1].Value.ToString()));
    }

    private void btn_scanqr_Click(object sender, EventArgs e)
    {
        var frmscan = new Frm_qrcode();
        frmscan.ShowDialog();
    }

    private void btn_fexcel_Click(object sender, EventArgs e)
    {
        OpenFileDialog ofd = new OpenFileDialog();
        if (ofd.ShowDialog() == DialogResult.OK)
        {
            var fileName = ofd.FileName;
            var connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties=\"Excel 12.0;IMEX=1;HDR=NO;TypeGuessRows=0;ImportMixedType s=Text\"";
            var conn = new OleDbConnection(connectionString);
            conn.Open();
            // var sheets = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSc hemaGuid.Tables, new object[] { null, null, null, "person" });
            var cmd = conn.CreateCommand();
            // cmd.CommandText = "SELECT * FROM [" + sheets.Rows[1]["A"].ToString() + "] ";
            cmd.CommandText = "SELECT * FROM [Sheet1$]";
            var adapter = new OleDbDataAdapter(cmd);
            var ds = new DataSet();
            DataTable dt = new DataTable();
            adapter.Fill(ds);
            adapter.Fill(dt);

            string[] sprtd = new string[20];
            int code;

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    sprtd[j] = dt.Rows[i][j].ToString();
                }

                if (DBConnention.search(sprtd[0], sprtd[1], sprtd[2]))
                {
                    continue;
                }
                else
                {
                    DBConnention.add(sprtd[0], sprtd[1], sprtd[2], sprtd[3], sprtd[4], sprtd[5], sprtd[6], sprtd[7], sprtd[8], sprtd[9], sprtd[10],
                        sprtd[11], sprtd[12], sprtd[13], sprtd[14], sprtd[15], sprtd[16], sprtd[17], sprtd[18], sprtd[19]);
                }
            }
        }
    }

    private void btn_mexcel_Click(object sender, EventArgs e)
    {
        var sd = new SaveFileDialog();
        if (sd.ShowDialog() == DialogResult.OK)
        {
            sd.Filter = "Excel Files|*.xls";
            sd.DefaultExt = ".xls";
            using (FileStream fs = new FileStream(sd.FileName, FileMode.Create, FileAccess.Write, FileShare.ReadWrite))
            {
                tbl_namayeshgahExcel.Export(fs);
            }
        }
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        tbl_crm.DataSource = DBConnention.show();
    }

    private void btn_show_Click(object sender, EventArgs e)
    {
        tbl_crm.DataSource = DBConnention.show();
    }

    private void btn_edit_Click(object sender, EventArgs e)
    {
        var frmedit = new Frm_add(int.Parse(tbl_crm.CurrentRow.Cells[0].Value.ToString()));
        frmedit.ShowDialog();
    }

    private void btn_print_Click(object sender, EventArgs e)
    {
        var frmprint = new Frm_print();
        frmprint.Show();
    }
}
}

这是form1.load背后的代码:

public static DataTable show()
    {
        using (var cn = new SqlConnection(dbConnection))
        {
            cn.Open();
            SqlCommand cmd = new SqlCommand(@"select * from tblNamayeshgah");
            SqlDataAdapter da = new SqlDataAdapter(cmd.CommandText, cn);
            DataTable dt = new DataTable();
            da.Fill(dt);
            return dt;
        }
    }

和我包括program.cs文件:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Namayeshgah
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}

1 个答案:

答案 0 :(得分:0)

如果可能,请尝试将框架设置为4.0。它在许多计算机和evend windows XP上都很常见。检查您是否尝试读取任何非现有文件(应用程序可以进入中断模式或崩溃)并尝试在项目设置中发布程序或编译为发布并提取文件但发布可能更好,因为setup.exe生成通过Visual Studio安装.Net Framework您的程序版本。