我已经离开编程一段时间了,但最近我需要它。
我在使用 SQL Server Compact Edition 4.0(VS2012 内置)的 SQL DataReader 时遇到问题。
string connstring = "Data Source=C:\\..(Path Here)..\\VacationsDB.sdf";
SqlCeConnection conn = new SqlCeConnection(connstring);
string strSQL = "SELECT * FROM Vacation WHERE VacationNo = @val";
using (SqlCeCommand cmd = new SqlCeCommand(strSQL, conn))
{
//read search value from from text field
cmd.Parameters.AddWithValue("@val", vacationno_txt.Text);
conn.Open();
SqlCeDataReader reader = cmd.ExecuteReader();
fname_txt.Text = reader.GetString(0);
mname_txt.Text = reader.GetString(1);
/*
* .. snip
*/
vacationno_txt.Text = reader.GetString(11);
conn.Close();
}
我一直收到错误: “InvalidOperationException 未处理。行/列不存在数据。”错误指向 fname_txt.Text = reader.GetString(0);
但实际上那里有数据,因为“提交”按钮及其所有代码都在工作,而且我已经在数据库表本身中检查过它。
有什么建议吗?谢谢。
最佳答案
DataReader 在第一行之前开始。
要从第一行读取,请调用一次 Read()
。
如果没有第一行,Read()
将返回 false
。
关于C# SqlDataReader 行/列不存在数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18155958/