工作每個其他呼叫我工作的公司有一個即將推出的項目,將使用MySQL作爲C#ASP .Net前端的後端。我把一個測試應用程序和數據庫放在一起,除非我嘗試調用任何proc,它會在第一次調用時工作,而不是下一次,然後再次,然後不是,它只能用於其他任何嘗試。MySQL存儲特效通過.Net
使用工作臺每次調用proc工程,就像使用VS2010連接到數據庫一樣,它只是失敗的應用程序代碼。我一直很確定每次都確保連接打開和關閉(並且處理完畢),但沒有運氣。
這裏是一個示例查詢;這是我一直在使用的proc:
SELECT
U.id,
U.First_Name,
U.Last_Name,
U.Birth_Date,
U.Created,
U.Password
FROM
test.user U;
正如你所看到的,它非常簡單。然而,這不僅僅是那個過程。我可以按任何順序調用任何procs並獲得相同的結果;關閉,打開,關閉等。如果我在代碼中調用不使用proc的查詢,它可以正常工作,但是公司使用的模型可以處理每個對數據庫(MSSQL)的調用,並且他們想要攜帶與此應用程序相同的標準也是如此。
只是要徹底,這裏是連接字符串(值修改當然):
Server=127.0.0.1;Port=3306;Data Source=localhost;Database=testdb;User Id=test_user;Password=pword;
而下面是在數據庫管理器的頂部:
我運行連接,命令和數據適配器都帶有「使用」塊,以確保它們在執行後被正確處理而沒有鬆散的末端,並且甚至試圖在關閉之後專門聲明它們的處置纔是安全的。沒有什麼改變行爲。
有沒有人見過這個?一切都在當地運行,以防萬一。
下面是使調用的代碼,我可能已經解決了它自己:
公共靜態數據表SPExecuteTable(字符串的CommandText = 「」,列出第= NULL) { DataTable的DT =新的DataTable( ); 異常ex = null;
using (MySqlConnection conn = new MySqlConnection(MySQL_Connection))
{
using (MySqlCommand com = MySQlComnd(commandText, paras))
{
try
{
conn.Open();
com.Connection = conn;
using (MySqlDataAdapter oda = new MySqlDataAdapter())
{
oda.SelectCommand = com;
oda.Fill(dt);
}
}
catch (Exception e)
{
ex = e;
}
finally
{
conn.Close();
}
}
}
if (ex != null)
throw ex;
return dt;
}
顯示您的實際呼叫代碼... –