我很新的ASP.NET,我認爲我沒有用它們的方式它的意思是用所有的功能打包到最新的.NET框架。我目前正在使用.NET Framework 4.0。代碼中有一些錯誤,不介意他們介意我們似乎使用古老技術的方式。古老的ASP.NET結構,告訴我怎麼做正確
我已經構建了這樣的一切。
我文件調用webservice.cs,該文件是擠滿了webMethods的是這樣的:
[WebMethod]
public string laggtillprodukt(string pro1, int pro2)
{
int sqlstatus;
string sqlinsertstringfull = "INSERT INTO t_produkter (produkt_namn) VALUES ('" + pro1 + "');" +
"SELECT produkt_id FROM t_produkter WHERE (produkt_id = SCOPE_IDENTITY()); " +
"INSERT INTO t_produktegenskaper (produkt_id, egenskaps_id) " +
"SELECT SCOPE_IDENTITY(), egen.egenskap_id " +
"FROM t_kopplingmallegenskaper as egen " +
"WHERE egen.mall_id = " + pro2 + ";";
sqlstatus = executeWriteSqlQuery(sqlinsertstringfull);
return "These values has been added to the db" + pro1 + " and " + pro2 + " SQL STATUS:" + sqlstatus;
}
在我後面的代碼我這樣做是爲了調用正確的函數(下面的一個無關用的WebMethod它以前只是想說明許多SQL查詢之一。
protected void laggtillnymallbutton_Click(object sender, EventArgs e)
{
WebService globalwebservice = new WebService();
if (string.IsNullOrWhiteSpace(laggtillnymall.Text))
{
Label1.Text = "String cannot be empty or just whitespaces!";
}
else
{
globalwebservice.laggtillmall(laggtillnymall.Text.Trim());
Label1.Text = "Template added";
}
我不能在一個更effiecient的方式這樣做。我已經構建了所有的webMethods要麼使用insertdata或讀取數據的一般方法,爲我保存了一些代碼,但是我看到了像LINQ這樣的東西遠遠少於我的代碼。請幫助我或指向一個不太古老的編碼方式;)
您的數據訪問方法容易受到[SQL注入](http://en.wikipedia.org/wiki/SQL_injection) - 您應該使用[參數化查詢](http://www.codinghorror而是使用.com/blog/2005/04/give-me-parameterized-sql-or-give-me-death.html)。 – Oded 2012-07-21 10:06:36
我發現很難在你的文章中找到一個實際的問題 - 除了一般的「幫助使這個更好」,這不是什麼堆棧溢出是關於 - 如果是這樣的話,[代碼評論](http:///codereview.stackexchange.com)可能是這個問題的更好的家園。請澄清。 – Oded 2012-07-21 10:11:54
@Oded - 我同意,如果除了SQL注入問題之外還有問題,我們還需要看到'executeWriteSqlQuery'和'laggtillmall'來回答它。 – Hogan 2012-07-21 10:25:45