Я создаю приложение для своей работы, чтобы отслеживать управление поведением в течение учебного года. Для этого я, очевидно, нуждался в базе данных. Я создал программу, чтобы при открытии проверить, существует ли база данных, а если нет, она создает один и вводит схему. Это отлично работает на моем компьютере-разработчике, но когда я переключу его на компьютер с помощью Windows XP, он дает сообщение об ошибке system.io.filenotfoundexception. Я не могу понять, почему он не будет создавать базу данных. Я использую Visual C# 2010 Express. И база данных создана в sql server ce.C# system.io.filenotfoundexception
if (!File.Exists("chart.sdf"))//Checks if file is already in existance when app is opened
{
dbCreated = createDb();//If there is no database, creates one
}
public bool createDb()//Creates the database if needed
{
bool success = true;
//Holds sql schema for the table
string[] tableCreateArr ={"create table childNameId"
+ "(childId INT IDENTITY PRIMARY KEY, "
+ "childFName nchar(40), "
+ "childLName nchar(40));",
"create table leaderNameId"
+ "(leaderId INT IDENTITY PRIMARY KEY, "
+ "leaderFName nchar(40), "
+ "leaderLName nchar(40));",
"create table TagPulledId"
+ "(tagId INT IDENTITY PRIMARY KEY, "
+ "childId INT, "
+ "leaderId INT, "
+ "day TINYINT, "
+ "month TINYINT, "
+ "year INT);",
"CREATE TABLE tagInfo"
+ "(tagId INT, "
+ "color nchar(10), "
+ "description ntext)"};
SqlCeEngine dbCreate = new SqlCeEngine(connectString()); // creates the database obj
dbCreate.CreateDatabase(); // creates the database file
SqlCeConnection tempConnect = new SqlCeConnection(connectString());//Connects to the new database
SqlCeCommand objCmd = new SqlCeCommand();//Creates an sql command obj
tempConnect.Open(); // opens the connection
objCmd.Connection = tempConnect; //Connects the command obj
foreach (string strCmd in tableCreateArr)//Iterates throught he sql schema to create the tables
{
try
{
objCmd.CommandText = strCmd; //sets the CommandText to the next schema entry in the array
objCmd.ExecuteNonQuery(); //Executes the create query
}
catch (SqlCeException sqlError)
{
MessageBox.Show(sqlError.Message, "SQL Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
success = false;
}
}
tempConnect.Close();
return success;
}
Я не могу понять, почему приложение не делает базу данных, кажется, работает на некоторых компьютерах, в то время как не работает на других. Любая помощь будет замечательной! Спасибо.
Установлены ли минимальные системные требования? Например, .NET framework? – jsmith
В коде нет ничего, что должно вызывать 'FileNotFoundException'. Как упоминалось в jsmith, это может быть внешний файл (т. Е. .NET framework), который отсутствует. –
Я установил .NET framework 4, мне нужна новая сборка? Первоначально я говорил мне, что мне нужна платформа .NET 4.3, но как только я установил 4, не сказал сборки, он запустил бы программу, но это дало ошибку. –