我从来没有使用过ADO.NET,我有一个存储的过程,如果我手动执行,它会接受一个学生编号并返回一个学生。
如果我在我的代码中执行它,它将返回全部6000名学生。在代码中执行有什么不同?
DataTable dt = new DataTable();
using (SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["My_DB"].ConnectionString.ToString()))
{
using (SqlCommand cmd = new SqlCommand("sk.My_StoredProc", con))
{
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
cmd.CommandType = CommandType.StoredProcedure;
//Add Parameter values
cmd.Parameters.Add("@StudentNumber", SqlDbType.VarChar).Value = studentNumber;
cmd.Parameters.Add("@StudentNameFragment", SqlDbType.VarChar).Value = studentNameFragment;
cmd.Parameters.Add("@SchoolYear", SqlDbType.VarChar).Value = this.schoolYr;
con.Open();
cmd.ExecuteNonQuery();
da.Fill(dt);
}
}
}
return dt;发布于 2015-01-27 07:32:48
ExecuteNonQuery -实际上不应该与SELECT - only update,insert或delete一起使用。并且它不会将rows...according返回给MSDN -请参阅下面的链接
https://stackoverflow.com/questions/28160623
复制相似问题