首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

怎么把变量的值,赋值到sql

2012-09-14 
怎样把变量的值,赋值到sqlINSERT INTO IP_LocalAllot(PID, DeptName, StartAddress, EndAddress, AllotDat

怎样把变量的值,赋值到sql
INSERT INTO IP_LocalAllot(PID, DeptName, StartAddress, EndAddress, AllotDate, Remarks) VALUES (@T_ID, @T_Name, @StartAddress, @EndAddress, @AllotDate, @Remarks)


T_ID T_Name是自定义的变量,已经在后台赋值
 string T_ID = Label1.Text.Trim();
 string T_Name = Label2.Text.Trim(); 

但是运行时候出错,说INSERT插入语句不能将空值插入到DeptName,不知道哪里的问题,请指教,谢谢

[解决办法]
INSERT插入语句不能将空值插入到DeptName 就是有的值是空的 而数据库里是非空

亲 调试下啊
[解决办法]
你是怎么执行的sql?通过sqlcommand?

C# code
SqlCommand myComm = new SqlCommand();  myComm.CommandText = "SELECT * FROM UserInfo WHERE UserName = @UserName ";// 这里就是传参  myComm.Parameters.Add( "@UserName", yourValue );
[解决办法]
string sql="INSERT INTO IP_LocalAllot(PID, DeptName, StartAddress, EndAddress, AllotDate, Remarks) VALUES (@T_ID, @T_Name, @StartAddress, @EndAddress, @AllotDate, @Remarks)" ;
ExecuteCommand(sql,
new SqlParameter[]{
 new SqlParamter("@T_ID",T_ID),
 new Sqlparamter("@T_Name",T_Name),
 .....
}
)




public int ExecuteCommand(string sql, params SqlParameter[] pars)
{
SqlConnection sqlConnection = new SqlConnection(_connstr);
SqlCommand sqlCommand = new SqlCommand(sql, sqlConnection);
sqlCommand.Parameters.AddRange(pars);
HToOpen(sqlConnection);
int count = sqlCommand.ExecuteNonQuery();
sqlCommand.Parameters.Clear();
HToClose(sqlConnection);
return count;
}
[解决办法]
StringBuilder strSql = new StringBuilder();
strSql.Append("insert into ChannelList(");
strSql.Append("ChannelNO,ChannelClass,curStatus,Area,Remark)");
strSql.Append(" values (");
strSql.Append("@ChannelNO,@ChannelClass,@curStatus,@Area,@Remark)");
strSql.Append(";select @@IDENTITY");
SqlParameter[] parameters = {
new SqlParameter("@ChannelNO", SqlDbType.VarChar,20),
new SqlParameter("@ChannelClass", SqlDbType.VarChar,20),
new SqlParameter("@curStatus", SqlDbType.VarChar,20),
new SqlParameter("@Area", SqlDbType.VarChar,20),

new SqlParameter("@Remark", SqlDbType.Text)};
parameters[0].Value = 赋值1;
parameters[1].Value = 赋值2;
parameters[2].Value = 赋值3;
parameters[3].Value = 赋值4;

parameters[4].Value = model.Remark;

object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
if (obj == null)
{
return 1;
}
else
{
return Convert.ToInt32(obj);
}
[解决办法]
楼主 能不能把你后台的代码贴出来
[解决办法]
很明显是DeptName不能为空,你插入时可能是空值:1首先看看你T_Name的取值是不是为空;2看看T_Name是否和@T_Name参数对应上了
[解决办法]
解决思路:
1.调试跟踪一下T_ID ,T_Name 看看是否有值
2.将你的跟踪出来的sql放倒数据库中去执行一下看看是否报错

这样子很容易就找到问题的所在,应该很好解决的。
[解决办法]
这个问题以前常碰到,都是粗心大意把代码写错了,使得SQL无法获得要赋的值,再仔细检查一下吧。。。
也有可能你提交过去的“Label2.Text.Trim()”就是一个空值。。。


SQL的值为非空的时候,在后台最好做个非空判断。。。

热点排行