この関数を呼び出そうとしています:
public Exception SetData(string Data)
{
public string conectionstring = "Data Source=MyData1.sdf;Encrypt Database=True;Password=as!;File Mode=Read Write; persist Security Info=False;LCID= 1033";
query = "Insert into [CopyData] values (@data)";
try
{
con = new SqlCeConnection(conectionstring);
com = new SqlCeCommand(query, con);
com.Parameters.AddWithValue("@data",Data);con.Open();
com.ExecuteNonQuery();
con.Close();
return null;
}
catch (Exception ex)
{
return ex;
}
}
Main()
コードを使用して
class Program
{
static void Main(string[] args)
{
DB cdb = new DB();
string b = "hello";
Exception e = cdb.SetData(b);
Console.WriteLine(e);
Console.ReadLine();
}
}
しかし、私はこの例外を受けています
System.Data.SqlServerCe.SqlCeInvalidDatabaseFormatException
データベース ファイルは、以前のバージョンの SQL Server Compact で作成されています。SqlCeEngine.Upgrade() を使用してアップグレードしてください
SqlCeEngine.Upgrade()
次のように呼び出して解決しようとします
public Exception SetData(string Data)
{
public string conectionstring = "Data Source=MyData1.sdf;Encrypt Database=True;Password=as!;File Mode=Read Write; persist Security Info=False;LCID= 1033";
public string conectionstringc = "Data Source=MyData1.sdf;Encrypt Database=True;Password=as!;File Mode=Read Write; persist Security Info=False;LCID= 1033;Case Sensitive=true";
query = "Insert into [CopyData] values (@data)";
try
{
SqlCeEngine engine = new SqlCeEngine(conectionstring);
engine.Upgrade(conectionstringc);
con = new SqlCeConnection(conectionstring);
com = new SqlCeCommand(query, con);
com.Parameters.AddWithValue("@data",Data);con.Open();
com.ExecuteNonQuery();
con.Close();
return null;
}
catch (Exception ex)
{
return ex;
}
}
しかし、その後、この例外が発生しました
System.Data.SqlServerCe.SqlCeException
データベースのアップグレードは必要ありません。データベースはすでに互換性のある形式になっています
私は何を間違っていますか?