我接触SQL时间不长,.net刚学,写了这样几句程序,好像执行有问题。public double GetAllSize(SqlConnection DBConn,string sUserID)
{
if(DBConn==null)
{
ErrorMessage = "数据库未连接";
return 0;
}
if(sUserID.Equals(""))
{
ErrorMessage = "用户ID不能为空";
return 0;
}
SqlCommand sqlCmd=null ;
SqlDataReader sqlReader=null;
SqlConnection sqlConn = DBConn;
string sSql=""; string rootDir="";
string serverIP="";
if(sqlConn.State==0) sqlConn.Open();
sSql = "select b.ServerIP,b.ServerDir from UserAccount a, ServerInfo b "
+ "where a.ServerIP = b.ServerIP and a.UserID='"+sUserID+"'";
sqlCmd=new SqlCommand(sSql , sqlConn) ; sqlReader=sqlCmd.ExecuteReader();
if(sqlReader.Read())
{
rootDir = Convert.ToString(sqlReader["ServerDir"]);
serverIP = Convert.ToString(sqlReader["ServerIP"]);
}
sqlReader.Close();
……
……double tsize=DirSize(dsize);sqlCmd.CommandText = "update UserAccount set UsedCapacity= tsize where UserID='" + sUserID + "' "; //这句好像有问题,该怎么写? sqlCmd.ExecuteNonQuery();
return tsize;
}
执行后,tsize没有被返回,数据库也没有更新,也没有错误提示。但是把UsedCapacity= tsize 改成UsedCapacity= 10时可以执行的,UsedCapacity在数据库中是dcimal类型。
{
if(DBConn==null)
{
ErrorMessage = "数据库未连接";
return 0;
}
if(sUserID.Equals(""))
{
ErrorMessage = "用户ID不能为空";
return 0;
}
SqlCommand sqlCmd=null ;
SqlDataReader sqlReader=null;
SqlConnection sqlConn = DBConn;
string sSql=""; string rootDir="";
string serverIP="";
if(sqlConn.State==0) sqlConn.Open();
sSql = "select b.ServerIP,b.ServerDir from UserAccount a, ServerInfo b "
+ "where a.ServerIP = b.ServerIP and a.UserID='"+sUserID+"'";
sqlCmd=new SqlCommand(sSql , sqlConn) ; sqlReader=sqlCmd.ExecuteReader();
if(sqlReader.Read())
{
rootDir = Convert.ToString(sqlReader["ServerDir"]);
serverIP = Convert.ToString(sqlReader["ServerIP"]);
}
sqlReader.Close();
……
……double tsize=DirSize(dsize);sqlCmd.CommandText = "update UserAccount set UsedCapacity= tsize where UserID='" + sUserID + "' "; //这句好像有问题,该怎么写? sqlCmd.ExecuteNonQuery();
return tsize;
}
执行后,tsize没有被返回,数据库也没有更新,也没有错误提示。但是把UsedCapacity= tsize 改成UsedCapacity= 10时可以执行的,UsedCapacity在数据库中是dcimal类型。
解决方案 »
- 关于添加的问题,急~~
- js或者jquery怎么提取一段字符中的网址?
- 问个MVC地址路由的问题
- 不支持关键字: “delete from user where no”。
- 关于搜索引擎的问题 高手看下
- Scott ToDoList (ajax.net)的程序 输入中文显示问号该如何解决
- asp
- DataGrid的编辑按钮和RequiredFieldValidator矛盾的问题~~~
- visual studio 2005 链接到数据库时用sql server身份验证出错
- 请高手帮忙修改一段程序,关于split的.
- 求:ASP.NET 2.0 优化技巧
- 请问asp.net里虚拟URL是如何实现的??
应该写成:sqlCmd.CommandText = "update UserAccount set UsedCapacity=" + tsize +
" where UserID='" + sUserID + "'";
string sql="update UserAccount set UsedCapacity= "+tsize+" where UserID='" + sUserID + "' ";
SqlCommand cmd = new SqlCommand(sql,Conn);
cmd.Connection.Open();
cmd.ExecuteNonQuery();
cmd.Connection.Close();
不好会被SQL注入使用参数语句
要不对输入进行加密也可以防止