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

一个Forms窗体上放了两个button按钮。。。stringt=DateTime.Now.ToString();stringinSert="insertintoatte... 一个Forms窗体上放了两个button按钮。。。
string t = DateTime.Now.ToString();

string inSert = "insert into attendance(userid,time)values (@Id '" + t + "')";
请问@id那里怎么声明让用户id同步写到数据库
展开
 我来答
21d801
2011-08-10 · TA获得超过660个赞
知道小有建树答主
回答量:830
采纳率:100%
帮助的人:916万
展开全部
给数据库操作中的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),否则必须用相应数据库的时间转换函数进行转换
更多追问追答
追问
我用的int id = getid();
错误提示:未处理NotImplementedException,未实现该方法或操作
追答
我那个 汗啊 ,id是需要你自己根据实际情况赋值的,我给的只是示例啊,你也不能完全照抄吧 ?
A2536555456
2016-03-19 · 超过30用户采纳过TA的回答
知道答主
回答量:88
采纳率:46%
帮助的人:26.8万
展开全部
在sql语句中如果用了这这种@Id变量,就要
给他指定一个值
类似与这样 SqlParameter paramname = new SqlParameter("@UserName",txtname.Text.Trim());

cmd.Parameters.Add(paramname);
参数的设置txtname.Text.Trim()这个值你根据自己的换
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
知道一族
2011-08-10 · 超过18用户采纳过TA的回答
知道答主
回答量:97
采纳率:0%
帮助的人:37.9万
展开全部
SqlCommand cmd = new SqlCommand("insert into attendance(userid,time)values (@Id '" + t + "')",sqlconn)
cmd.Parameters.AddWithValue("@Id",id); //其中id是变量
cmd.ExecuteNonQuery(); //执行以下 就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鑫鼎0411bdqn
2011-08-10 · TA获得超过1927个赞
知道大有可为答主
回答量:1083
采纳率:0%
帮助的人:1630万
展开全部
你得定义id
然后按照你程序的需要赋值给id
然后用SQL语句 insert into attendace(userid,time)values( id,t)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hanyw_2012
2011-08-10
知道答主
回答量:2
采纳率:0%
帮助的人:3404
展开全部
这里的@id是在哪里给值的,

还是"@id“是要存入数据库中的数据,如果是加上@id=>'@id'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式