我有一個HTML文本框,其中包含一些我需要執行的SQL代碼。我能夠從文本框中檢索實際的代碼,但我不知道如何去執行代碼。任何簡單和優雅的方式使用C#3.5?如何使用c#3.5運行SQL代碼?
0
A
回答
15
不執行代碼的文本框
,除非你真的相信正在輸入的內容。
如果你這樣做,這樣做:
SqlConnection con = new SqlConnection("Your connection string");
con.Open();
SqlCommand cmd = new SqlCommand(TexdtBox1.Text, con);
cmd.ExecuteNonQuery();
con.Close()
注意,這將不會返回任何東西,僅僅指剛運行查詢。如果你想返回數據,你需要一個SqlDataAdaptor或者SqlDataReader。
+0
關於'trusing'輸入的第一條語句 – tvanfosson 2009-02-13 14:53:56
0
這取決於您要執行的數據庫的類型。如果我可以假設你想談論到SQL Server數據庫,看看下面的類:
0
從文本創建CommandText的一個SqlCommand。
12
0
這裏有一個小(未經測試的未經檢驗的,因爲就在SO文本框中鍵入)的示例代碼:
using System.Data;
namespace MyGreatNamespace
{
class MyGreatClass
{
static public DataTable executeTable(string query)
{
return executeTable(query, null, null);
}
static public DataTable executeTable(string query, string[] params, object[] values)
{
DataTable myTable = new DataTable();
using (SqlConnection connection = new SqlConnection(myConnectionString))
using(SqlCommand command = new SqlCommand(connection))
{
command.CommandType = CommandType.Text;
command.CommandText = myQuery;
if (parameters.Count == values.Count && parameters.Count > 0)
{
for(int i = 0; i < parameters.Count; i ++)
{
command.addParameterWithValue(parameters[i], values[i]);
}
}
using(SqlDataAdapter adapter = new SqlDataAdapter(command))
{
adapter.Fill(out myTable);
}
}
return myTable;
}
}
}
0
我不會推薦它,但如果這樣做,至少驗證了SQL輸入從SELECT開始,不包含任何分號(;)或註釋字符( - 和/ *)。
相關問題
- 1. C#,ASP.NET 3.5 - 運行時加載代碼
- 2. 如何使用C#代碼運行C#代碼?
- 3. 如何使此代碼在.NET 3.5中運行?
- 4. 運行.NET 3.5的代碼在2.0 CLR
- 5. 運行.sql文件使用java代碼
- 6. 用PHP運行C++代碼
- 7. 如何使用C#運行sql腳本
- 8. 使用C#代碼運行powershell腳本
- 9. 編譯C++代碼以在ESXi 3.5上運行
- 10. 如何使用氫氣運行代碼
- 11. 如何使用json_decode運行php代碼?
- 12. 如何使用Crawljax運行JavaScript代碼
- 13. 如何使用Leiningen運行代碼?
- 14. 如何從C#運行PowerShell代碼?
- 15. 如何運行一點PHP代碼C
- 16. 如何(不)重新運行C++代碼?
- 17. 如何從終端運行C代碼?
- 18. 從C#運行C代碼#
- 19. 如何在C#運行從SQL Server代碼
- 20. 如何從C++使用V8同時運行一堆JS代碼?
- 21. 如何使用cvim插件在vim中運行C++ 11代碼?
- 22. 如何使用node-gyp與node.js一起運行C++代碼
- 23. 如何使用Java代碼運行Java代碼?
- 24. vs代碼來運行c代碼
- 25. 如何使用C#代碼
- 26. C#上運行的代碼
- 27. C代碼停止運行
- 28. 在線運行C++代碼?
- 29. 如何使用MS SQL Server 2008連接並運行ASP中的SQL代碼?
- 30. 如何代碼運行PHP
親愛的上帝,不,不要讓用戶直接將sql輸入到文本框! – 2009-02-13 14:55:15
澄清:這不僅僅是安全問題,儘管這是一筆巨大的交易。對於那些善意的用戶來說,放入一個性能不佳的查詢,對你的服務器進行管理,並且有效地在你的數據庫上創建一個拒絕服務,這是非常容易的。 – 2009-02-13 14:57:41
不想擊敗死馬,但瞭解這是一個可怕的想法是非常重要的。 – 2009-02-13 15:33:33