我收到错误,在本地窗口中看到conSettings和connectionString值均为null。我说ConfigurationManager为null是正确的,我需要创建一个新对象。可能我正在使用Access,也可能我在App.config文件中遗漏了一些内容。请有人帮助我如何解决此问题。提前感谢。
应用程序配置文件...
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="MyDBConnectionString" value="Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=E:\...\Database1.mdb"/>
</appSettings>
</configuration>
窗体. cs文件...
private void btnShow_Click(object sender, EventArgs e)
{
ConnectionStringSettings conSettings = ConfigurationManager.ConnectionStrings["MyDBConnectionString"];
string connectionString = ConfigurationManager.ConnectionStrings["MyDBConnectionString"].ConnectionString; // error points here
try
{
con = new OleDbConnection(connectionString);
con.Open();
cmd = new OleDbCommand("SELECT * FROM Table1", con);
objReader = cmd.ExecuteReader();
while (objReader.Read())
{
txtID.Text = ds.Tables[0].Rows[rno][0].ToString();
CBAgeGroup.Text = ds.Tables[0].Rows[rno][1].ToString();
CBGender.Text = ds.Tables[0].Rows[rno][2].ToString();
CBCrimOffen.Text = ds.Tables[0].Rows[rno][3].ToString();
if (ds.Tables[0].Rows[rno][4] != System.DBNull.Value)
{
photo_aray = (byte[])ds.Tables[0].Rows[rno][4];
MemoryStream ms = new MemoryStream(photo_aray);
pictureBox1.Image = Image.FromStream(ms);
}
txtCV.Text = ds.Tables[0].Rows[rno][5].ToString();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
con.Close();
}
}
有人建议我使用App. config。
VS 2010 C# MS访问2003
更新1我的应用程序配置现在如下所示...
<configuration>
<ConnectionString>
<add key="MyDBConnectionString" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Raj\Education\C_Sharp\Test1\Database1.mdb"/>
</ConnectionString>
我现在收到错误...“配置系统初始化失败”。我现在正在谷歌上查看它。
更新2已尝试...
<configuration>
<connectionStrings>
<add name="MyDBConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=E:\...\Database1.mdb"/>
</connectionStrings>
</configuration>
再次Google搜索时收到“对象引用未设置为对象示例”错误
更新3
<configuration>
<connectionStrings>
<clear />
<add name="MyDBConnectionString"
providerName="System.Data.OleDb" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Source=\Database1.mdb" />
</connectionStrings>
随着更新3我收到错误相同的错误。我已经包括了添加参考系统。配置和我已经引用使用系统。配置;
结论
也许VS 2010和Access 2003之间有一个技术上的小故障。这次我不会使用App.config。我知道SQL Server不会有问题。所以我就不管了。谢谢Damith和克林特抽出时间。
6条答案
按热度按时间1tu0hz3e1#
您需要按如下所示读取AppSettings密钥,
您仍然收到空值,请尝试以下步骤
1.在解决方案资源管理器中选择App.config文件
1.在属性窗口中,选择“复制到输出目录”以始终复制。
1.现在生成应用程序并重试。
要访问如下所示,您需要在应用程序配置中添加connectionStrings节
示例应用程序配置
aiazj4mn2#
检查你是否已经把app.config文件放在你的启动项目下了。在我的例子中,我只需要把app.config文件放在我的启动项目下,问题就解决了。
l7wslrjt3#
我在类库中遇到过这种情况,控制台应用程序设置为运行调试。
有必要在控制台应用程序中添加到app.config的连接,因为如果您从外部进程启动它,它将不会在您的库中找到它。
nhhxz33t4#
这一点:
是你的问题。
您正在访问
ConfigurationManager.ConnectionStrings
以获取配置项,但在App.Config
文件中,您将其放在appSettings
下,这与ConnectionStrings
不在同一配置文件部分您可以将连接字符串放入app.config的相关
ConnectionStrings
部分(可通过ConfigurationManager.ConnectionStrings
访问),也可以通过appSettings
部分访问它。参见:
http://msdn.microsoft.com/en-us/library/ms254494(v=vs.80).aspx
有关存储连接字符串的MSDN准则。
hjzp0vay5#
我也面临着同样的问题,即使在多次仔细检查app.config文件和我的代码错误,但我没有发现任何错误,在我的代码.最终我发现了一个愚蠢的错误,我的编译器默认采用的应用程序配置文件名为'app1.config',当我把它改为'app.config'一切都很好地为我工作.
希望能有所帮助。
gajydyqb6#
当我通过****项目-〉添加-〉新项... -〉应用程序配置文件将app.config文件添加到旧的,一个很小的C#库,最初是用.NET Framework 4. 5编写的,后来更新到4. 7. 2。经过多次尝试,我决定将配置文件作为XML文件加载。如果所有其他方法都失败,您可以考虑使用此变通方法。
应用程序设置
代码隐藏
效果应类似于:
希望有人会觉得这个有用。