我有一個使用存儲過程從數據庫中檢索數據並顯示一個錶轉儲數據的程序,這是我的代碼的外觀:
string connectionString = ConfigurationManager.ConnectionStrings["azcom"].ConnectionString;
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
cmd = new SqlCommand("search_person", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@searchString", SqlDbType.VarChar).Value = searchString;
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
DataTable table = new DataTable();
while (reader.Read())
{
table.Columns.Add("IDNumber", typeof(string));
table.Columns.Add("Name", typeof(string));
table.Columns.Add("Surname", typeof(string));
table.Columns.Add("Company Name", typeof(string));
table.Rows.Add("@idnumber", "@name", "@surname", "@companyN");
}
table.Load(reader);
lblDisplay.Text = table.ToString(); }
問題是我的SqlDataReader對象返回null導致我的程序給我這個錯誤:
Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.
任何人有一個想法可能是什麼原因請幫助我。
如果你想填充一個datatable無論如何,我更喜歡'SqlDataAdapter.Fill(table)'。順便說一句,什麼'table.ToString()'顯示?一個'DataTable'是一個沒有自定義'ToString'的複雜對象。 –
我們需要在枚舉讀取器之前**設置**'DataTable'和它的列** **然後您需要實際去**通過使用'string獲取讀值的值** name = reader.GetString(1)'等等...... –
爲什麼在循環中添加'DataColumns'?在執行讀者之前,你應該這樣做一次。 –