Моя программа не будет работать на других компьютерах

Я написал программу на C# с.net framework 4.5.2 и включил в себя janus gridex и Elegant.ui и, конечно, он имеет базу данных в sql. он работает префект в моей системе, но когда я устанавливаю его в других системах, он не запускается, никаких ошибок. Я установил janus, Elegant.ui и SQL на других системах, но он не будет работать. для получения дополнительной информации я сделал мой установочный файл с помощью installshield и сделал пакетный файл с помощью Turbo Studio, ни один из них не работал. что я должен делать? что ты думаешь я не сделал?

PS: я установил другие мои программы, и они работали нормально, но у них нет janus и eleg.ui.

вот код моей исходной_формы:

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 ответ

Если возможно, попробуйте получить фреймворк для 4.0. Это часто встречается на многих компьютерах, и даже Windows XP поддерживает его. Проверьте, не пытаетесь ли вы прочитать какой-либо несуществующий файл (приложение может войти в режим прерывания или сбой), и попробуйте опубликовать программу в настройках вашего проекта или скомпилировать как Release и извлечь файлы, но публикация может быть лучше, потому что сгенерированный setup.exe Visual Studio устанавливает.Net Framework версию вашей программы.

Другие вопросы по тегам