Моя программа не будет работать на других компьютерах
Я написал программу на 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 версию вашей программы.