私がしていることはとても簡単です。SQLデータベースに接続して、テーブルから情報を読み取る必要があります。私は愚かな何かを見逃していると確信しています。C#、SQLサーバー、およびWPFを使用しています。示されている接続文字列は、データソースビルダーが提供したものであるため、正しいと思います。私はそれとの接続をテストし、それは成功しました。問題の解決に役立つコードと画像を添付しています。
コード:
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
con = new System.Data.SqlClient.SqlConnection();
con.ConnectionString = "Data Source=USSW7DEVWS16\\DEVELOPER;Initial Catalog=acrGIS;Integrated Security=True";
con.Open();
using (SqlCommand command = new SqlCommand("SELECT * FROM dbo.acrObjects", con))
{
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
string Object = reader.GetString(0);
string Comment = reader.GetString(1);
string OStreet = reader.GetString(2);
string OCity = reader.GetString(3);
string OState = reader.GetString(4);
string OZip = reader.GetString(5);
string OSpec = reader.GetString(6);
arcObjects.Add(new acrObject() { Object_Num = Object, Comments = Comment, Street = OStreet, City = OCity, State = OState, Zip = OZip, Spec = OSpec });
}
foreach (acrObject objects in arcObjects)
{
MessageBox.Show(objects.ToString());
}
}
これが私のクラスとリストと接続の定義です。
class acrObject
{
public string Object_Num {get; set;}
public string Comments{get; set;}
public string Street {get; set;}
public string City {get; set;}
public string State{get; set;}
public string Zip {get; set;}
public string Spec {get; set;}
public override string ToString()
{
return string.Format("Object Number: {0}, Comments: {1}, Street: {2}, City: {3}, State: {4}, Zip: {5}, Spec: {6}", Object_Num, Comments, Street, City, State, Zip, Spec);
}
}
System.Data.SqlClient.SqlConnection con;
List<acrObject> arcObjects = new List<acrObject>();
例外の画像:
それは次の行で起こります:
while (reader.Read())
さらに奇妙なのは、エラーがスローされず、すべてのコードがスキップされる場合があることです。だから、私が見つけたメッセージボックスを表示しようとすることさえ決してありません。ご協力ありがとうございました。他にご不明な点がある場合、またはコードをさらに投稿したい場合は、お知らせください。喜んで対応させていただきます。
ブレークポイントとコールスタックの表示:
try/catchを実行したときにスローされる例外は次のとおりです。