【发布时间】:2012-01-03 05:42:54
【问题描述】:
这是我之前问题的延续:Could not find an implementation of the query pattern
现在我设法查询了我的数据库,但我似乎无法获取网页上的内容。
我尝试使用以下代码返回代码:
private void button1_Click(object sender, RoutedEventArgs e)
{
Service1Client client = new Service1Client();
client.GetPersoonByIDCompleted += new EventHandler<GetPersoonByIDCompletedEventArgs>(client_GetPersoonByIDCompleted);
client.GetPersoonByIDAsync("1");
}
void client_GetPersoonByIDCompleted(object sender, GetPersoonByIDCompletedEventArgs e)
{
if (e.Error != null)
textBox1.Text = e.Error.ToString();
else
label1.Content = e.Result.Voornaam.ToString();
}
但是,当我按下按钮时,出现以下错误:
对象引用未设置为对象的实例。
在 SilverlightApplication1.MainPage.client_GetPersoonByIDCompleted(对象 发件人,GetPersoonByIDCompletedEventArgs e) 在 SilverlightApplication1.ServiceReference1.Service1Client.OnGetPersoonByIDCompleted(对象 州)
奇怪的是,当我不使用 LINQ 而是使用普通 SQL 时它可以工作。
string sql = "SELECT ID, naam, voornaam, leeftijd FROM tblPersoon WHERE id=@pmID";
Persoon pers = null;
string connstr = ConfigurationManager.ConnectionStrings["connDB"].ConnectionString;
using (SqlConnection cn = new SqlConnection(connstr))
{
SqlCommand com = new SqlCommand(sql, cn);
com.Parameters.AddWithValue("pmID", id);
cn.Open();
SqlDataReader reader = com.ExecuteReader();
if (reader.Read())
{
pers = new Persoon();
pers.ID = reader.GetString(0);
pers.Naam = reader.GetString(1);
pers.Voornaam = reader.GetString(2);
pers.Leeftijd = reader.GetInt32(3);
}
}
return pers;
}
LINQ 结果:
SQL 结果:
感谢您对我的帮助,我非常感谢! 托马斯
【问题讨论】:
-
什么是 InnerException?在那里您可以获得所需的详细信息。
-
如何获得 InnerException?
标签: sql silverlight wcf linq