永发信息网

C#/asp.net/必须声明标量变量 "@Id"。

答案:5  悬赏:60  手机版
解决时间 2021-02-06 15:10
  • 提问者网友:贪了杯
  • 2021-02-06 09:29
一个Forms窗体上放了两个button按钮。。。
string t = DateTime.Now.ToString();

string inSert = "insert into attendance(userid,time)values (@Id '" + t + "')";
请问@id那里怎么声明让用户id同步写到数据库
最佳答案
  • 五星知识达人网友:刀戟声无边
  • 2021-02-06 11:08
给数据库操作中的sqlcommand,加上parameter,@变量 通常用于存储过程或函数的占位符,通过parameter进行操作

sqlparameter para = new sqlparameter("Id",id的数据库类型);
para.value = id值
sqlcommand.parameters.add(para);

cmd.executenonquery() ;

上述你按照你现有的要求写的部分代码

如果你是初学者,可以考虑直接拼接,虽然这种实际当中并不提倡,怕导致sql注入
假设Id在数据库中为int类型
int id = getid();
那么string sqlStr = "insert into attendance(userid,time)values ( "+id+",'"+ t + "')";
注意你这time数据库字段是否字符型(varchar或nvchar),否则必须用相应数据库的时间转换函数进行转换
全部回答
  • 1楼网友:詩光轨車
  • 2021-02-06 13:12
string inSert="Insert into attendace(userid,time)values( "id",t); 这样不就能写入里边了吗 id 和时间两个字段
  • 2楼网友:慢性怪人
  • 2021-02-06 12:59
@Id 你这个变量值的类型定义了没有?它的值从哪个地方获取,你给它赋值没有? sql标准语句里面的少了个豆号看到没有? 解决完上面说的这3个问题 ,问题就解决了
  • 3楼网友:詩光轨車
  • 2021-02-06 11:55
这里的@id是在哪里给值的, 还是"@id“是要存入数据库中的数据,如果是加上@id=>'@id'
  • 4楼网友:怀裏藏嬌
  • 2021-02-06 11:27
在sql语句中如果用了这这种@Id变量,就要 给他指定一个值 类似与这样 SqlParameter paramname = new SqlParameter("@UserName",txtname.Text.Trim()); cmd.Parameters.Add(paramname); 参数的设置txtname.Text.Trim()这个值你根据自己的换
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯