Başka bir programda kullanmaya çalıştığım bir DLL var. benim dll itibarenStatik readonly değişken DLL başlatılamadı
: benim diğer programdan
public class fService
{
public static readonly string connectionString = "My connection string";
...
etc
...
public static void myStaticMethod()
{
fStat x = new fStat();
}
}
:
private void btnSave_Click(object sender, EventArgs e)
{
try
{
fService.myStaticMethod();
MessageBox.Show("Success!");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
alıyorum istisna The ConnectionString property has not been initialized.
olan bu bazı sorunlara yol açmaktadır parçasıdır.
Bu neden? Nasıl düzgün bir şekilde başlatabilirim? fService sınıfı statik yapılmalı mı (bundan kaçınmak isterim)?
at System.Data.SqlClient.SqlConnection.PermissionDemand()
at System.Data.SqlClient.SqlConnectionFactory.PermissionDemand(DbConnection outerConnection)
at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
at System.Data.SqlClient.SqlConnection.Open()
at fManager.tableClasses.fStats..ctor() in e:\fManager\project\fManager\ConsoleApplication1\tableClasses\fStats.cs:line 55
at fManager.fService.constructElement(String header, String content, fService& service) in e:\fManager\project\fManager\ConsoleApplication1\fService.cs:line 964
at fManager.fService.LoadIni(String path) in e:\fManager\project\fManager\ConsoleApplication1\fService.cs:line 675
at fManagerF.mainForm.btnSave_Click(Object sender, EventArgs e) in e:\fManager\exeProject\fManagerF\fManager\mainForm.cs:line 54
ve bu sorun köken gibi görünüyor nerede:
StackTrace
public fStat()
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand("fManager.getfStats", conn);
SqlCommand cmdCount = new SqlCommand("SELECT COUNT(*) FROM [fManager].[fStats]", conn);
_id = 0;
cmd.CommandType = System.Data.CommandType.StoredProcedure;
conn.Open();
_id = (int)cmdCount.ExecuteScalar();
cmd.ExecuteNonQuery();
conn.Close();
}
}
DÜZENLEME: sen/kapatmak için oy downvote, neden söyle lütfen . Ben tüm bilgileri temin gibiyim ve ben topid izle, ama
'// Bu, connectionString kullanılır.' Ve gerçek yığın izlemesi kodunu gösterir. Aldığınız hata, .NET çalışma zamanı tarafından 'connectionString' üyeniz hakkında konuştuğunuz bir hata, ancak bazı veritabanı bağlantı kodları _not_. – CodeCaster
stacktrace'i gösterir. Kod doğru görünüyor! – Apoorv