在我的C#MVC4應用程序,我有以下代碼:上線SQL參數格式問題
string[] parameters = new string[items.Count];
SqlCommand SecondQuery = new SqlCommand();
for (int i = 0; i < items.Count; i++)
{
parameters[i] = string.Format(items[i].Id);
SecondQuery.Parameters.AddWithValue(parameters[i], items[i]);
}
SecondQuery.CommandText = string.Format("SELECT * from S_analysis WHERE heat_no IN ({0})", string.Join(", ", parameters));
SecondQuery.Connection = new SqlConnection(strSQLconnection);
using (SqlConnection conn = new SqlConnection(strSQLconnection))
{
SecondQuery.CommandTimeout = 50000;
conn.Open();
SecondQuery.Connection = new SqlConnection(strSQLconnection);
SecondQuery.Connection.Open();
using (var reader7 = SecondQuery.ExecuteReader())
{
int fieldCount = reader7.FieldCount;
while (reader7.Read())
{
for (int i = 0; i < fieldCount; i++)
{
finalresults.Add(reader7[i].ToString());
}
}
}
}
我的應用程序崩潰:using (var reader7 = SecondQuery.ExecuteReader())
與此錯誤:No mapping exists from object type <>f__AnonymousType42[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]] to a known managed provider native type.
林假設這是因爲當我查看我的SecondQuery.CommandText我的查詢如下所示:SecondQuery.CommandText = "SELECT * from S_analysis WHERE heat_no IN (B5P5649, B5P5647, B5P5656, A5P0761, A5P0762)"
我相信代碼的IN部分中的每個參數應該在每一邊都有單引號符號。我如何修改我的代碼來添加這個或是這是什麼導致我的錯誤?
3 Sqlconnections和一個執行?有些事情不對...... – 2013-04-26 00:20:06
你真的應該考慮爲你的變量更好地命名約定。例如,'SecondQuery'看起來會更好,因爲'secondQuery'。更不用說(儘管我提到它),「finalResults」而不是「finalresults」。 – Brian 2013-04-26 01:11:41