我創建了一個InsertTable
方法到AigsAuthorityLayer
表,但有一些事件依賴於權限範圍。如果scope is ==
系統,這將是等於1,當scope is ==
到共享組ID值是GroupId = aigsDB.GetDefGroup(Convert.ToString(context.Session["GroupID"])).Rows[0]["lSharingGid"].ToString();
如果是scope == to group
,這將是C#插入到帶有case語句的sql表中
authority = aigsDB.GetDefGroupUser(Convert.ToString(context.Session["UserId"].ToString()));
對於editFlg,如果是等於一,它將返回true,如果沒有,假
CommonMethod.CheckLogin();
string sqlWord = CommonDB.CreateSqlString("AigsAuthorityLayer", "*", "", "", "");
context = HttpContext.Current;
CommonDB comDB = new CommonDB(connection);
try
{
string sql = "INSERT INTO AigsAuthorityLayer (lGid, LayerNo, lAuthority, IEditFlg) VALUES('{0}',{1}, {2},{3}')";
sql = sql.Replace("{0}", GroupId);
sql = sql.Replace("{1}", layerName.ToString());
sql = sql.Replace("{2}", authority.ToString());
sql = sql.Replace("{3}", editFlg.ToString());
comDB.Open();
comDB.AddNewRecord(sql);
{
comDB.Close();
comDB = null;
}
GroupId = "-1";
authority = "-1";
if (scope == "system")
{
return GroupId;
}
else if (scope == "sharing")
{
GroupId = aigsDB.GetDefGroup(Convert.ToString(context.Session["GroupID"])).Rows[0]["lSharingGid"].ToString();
}
else if (scope == "group")
{
authority = aigsDB.GetDefGroupUser(Convert.ToString(context.Session["UserId"].ToString()));
}
return true;
}
catch (Exception e)
{
throw logger.Error("InsertAigsAuthorityLayer", e);
}
finally
{
if (editFlg == "1")
{
return true;
}
else
{
return false;
}
comDB.Close();
comDB = null;
}
}
我的問題是,我不知道我這樣做是正確:(任何人都知道如果這個代碼是否正確?謝謝
爲什麼不使用[參數化查詢](http://www.codinghorror.com/blog/2005/04/give-me-parameterized-sql-or-give-me-death.html)而不是字符串替換?順便提一下,你的問題似乎有點不清楚。 –
@SonerGönül有一個重要的觀點。你完全開放注入,並應改爲參數化查詢 –
我不知道該怎麼做對不起@SonerGönül這只是第一次生病與C#工作。但是我的代碼會工作嗎? – Lyn