求解决方法。要详细的。thank you!
注意是winform下,不是wpf
注意是winform下,不是wpf
解决方案 »
- 关于.net平台安装的问题
- WebBrowser加载完成后,再禁止css,javascript的执行,怎么实现?
- c#设置excel字体大小时速度很慢,需要等一两秒。
- 版鸟进来
- 如何实现Web页面在进行耗时运算时,弹出一个进度页面(页面显示文字或动画GIF就OK),运算完成后自动关闭进度页面。
- 咨询一个问题,分不够可以在加的。
- datagrid控件里显示一个表的信息,点击删除其中一条,怎么刷新这个表的内容。
- 做一个入库单你们都用什么控件。
- DrawString问题
- 如何用Richtextbox.Find实现向上查找?
- wpf media player 运行问题
- C#调用Delphi写的dll文件里的函数问题
求解决方法。要详细的。thank you!
注意是winform下,不是wpf
if (!File.Exists(dbfile))
{
MessageBox.Show("数据库不存在!");
} string connstr = "Data Source=" + dbfile + ";BinaryGuid=False";
SQLiteConnection conn = new SQLiteConnection(connstr);
System.Data.SQLite.SQLiteCommand cmd = new System.Data.SQLite.SQLiteCommand();
string sqlstr = string.Empty;
cmd.Connection = conn;
conn.Open();
sqlstr = "SELECT * FROM student";
cmd = new SQLiteCommand(sqlstr, conn);
SQLiteDataReader dr = cmd.ExecuteReader();
连接字符串: data source=filepath
这个是解决办法么?可能是我没说明白,sqlite目前大部分的是支持.net2.0 的,但是我的程序是用.net4.0做的,而且还是winform程序,在网上找了好长时间的解决方法,都没有找到,都是如何解决wpf连接sqlite的办法,如果用wpf的办法,那么怎么加配置文件呢?加了配置文件又如何读这个配置文件呢?
下面的是解决wpf .net 4.0 连接sqlite的方法。
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
<startup useLegacyV2RuntimeActivationPolicy="true"><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
就可以了
<configuration>
<configSections>
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=4.1.0.0, Culture=neutral, PublicKeyToken=null />
</configSections>
<dataConfiguration defaultDatabase="
">
<providerMappings>
<add databaseType="EntLibContrib.Data.SQLite.SQLiteDatabase, EntLibContrib.Data.SqLite, Version=4.1.0.0, Culture=neutral, PublicKeyToken=null"
name="System.Data.SQLite" />
</providerMappings>
</dataConfiguration>
<connectionStrings>
<add name="sqlite" connectionString="Data Source=|DataDirectory|\db;Pooling=true;FailIfMissing=false"
providerName="System.Data.SQLite" />
</connectionStrings>
</configuration>
Database db=DatabaseFactory.CreateDatabase ("ConnectionString");
DbCommand comm = db.GetStoredProcCommand("GetUserByID");
IDataReader reader = null;
db.AddInParameter(comm, "UserID", DbType.String, "12");
using (reader = db.ExecuteReader(comm))
{
}
and cannot be loaded in the 4.0 runtime without additional configuration information. 这是错误信息。唉,怎么弄啊,帮帮忙。求解决办法。
and cannot be loaded in the 4.0 runtime without additional configuration information.
lz 我简单翻译下,你别笑混合模式集编译有悖于版本v2.0.50727运行时
并且在没有额外配置信息下不能加载4.0运行时
所以说你看看 是不是你运行时的问题,为什么你的.net4.0会涉及到你的 2.0呢
你在C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools下新建一个sgen.exe.config文件,内容为
<?xml version ="1.0"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<requiredRuntime safemode="true" imageVersion="v4.0.30319" version="v4.0.30319"/>
</startup>
</configuration>
反編譯也解決不了問題,原有dll 是.net2 ,dll必然引用的框架也是.NET2的,你在重新編譯回去能用,不是新手能做的,起碼你需要更改因為框架版本,況且.net4的與.Net2地址有很大變動,你甭想了
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="sqliteConnString" connectionString="Data Source=World.db3;Pooling=true;FailIfMissing=false" providerName="System.Data.SQLite" />
</connectionStrings>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
<requiredRuntime version="v4.0.20506" />
</startup>
</configuration>
DbProviderFactory fact = DbProviderFactories.GetFactory("System.Data.SQLite");
using (DbConnection conn = fact.CreateConnection())
{
conn.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["sqliteConnString"].ConnectionString;
conn.Open();
DbCommand comm = conn.CreateCommand();
comm.CommandText = "select * from city";
comm.CommandType = CommandType.Text;
using (IDataReader reader = comm.ExecuteReader())
{
while (reader.Read())
{
//Response.Write(reader["rName"]);
}
}
}
关键是xml中的代码,我的也解决了。