我有一個令人難以置信的奇怪問題,我一直試圖修復幾乎一天,現在我正對着磚牆,需要幫助!ASP.NET存儲過程調用沒有行,但在管理工作室!
我創建了一個.NET 4的C#網站我Windows 7的PC上,新安裝的SqlServer 2008速成R2,和一切工作正常。
我已經上傳了數據庫和網站。 該網站現在位於Windows Web Server 2008 R2(帶有Service Pack 1) 該數據庫位於不同的服務器上運行Windows Server 2008 R2 Standard與SQL Server 2008 R2。
網站的其他部分運行良好,連接到數據庫罰款,除了一頁,我已經縮小到一個存儲過程調用沒有返回行。
我已經簡化調用此:
DataSet ds = new DataSet();
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["myConn"].ToString());
SqlCommand cmd = new SqlCommand("MYSP 'param1', param2, param3", conn);
cmd.CommandType = CommandType.Text;
conn.Open();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
Response.Write("ROWS COUNT IN GET DS " + ds.Tables[0].Rows.Count);
conn.Close();
cmd.Dispose();
return ds;
對於上述的任何的,如果我我反對它返回2行數據庫的精確副本,在本地計算機上運行此,如果我直接運行在活動服務器上的Sqlserver Management Studio中,它返回2行,但如果我通過ASP.net在實時服務器上運行它,它將返回任何行!
任何人都可以擺脫任何光?我瘋了!
更新即使我使用命令式的文字,我已經嘗試過與分離PARAMS命令類型的存儲過程(如下),但它並沒有區別
cmd.CommandType = StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@param1", param1));
cmd.Parameters.Add(new SqlParameter("@param2", param2));
cmd.Parameters.Add(new SqlParameter("@param3", param3));
UPDATE
謝謝大家的意見!
答案是:
,該網站使用設置爲「英英」(默認)數據庫用戶。我沒有意識到這一點,因爲它是一個新的服務器!
其他地方的用戶都設置爲「英文」,所以將用戶改爲英文可以修復它!
myConn是否存在於該服務器的web.config中?有效的cridentials? – David
@David感謝您的答案,是的,它是有效的,因爲其他sps工作正常 – Bex