cmd.CommandType = CommandType.StoredProcedure;采取的存储过程怎么理解?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cmd.CommandType = CommandType.StoredProcedure;采取的存储过程怎么理解?相关的知识,希望对你有一定的参考价值。

public bool insertUsers(string userName, string userPwd)

SqlConnection con = Connection.getConnection();
SqlCommand cmd = new SqlCommand("insertUsers", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@userName", SqlDbType.VarChar, 20);
cmd.Parameters["@userName"].Value = userName;
cmd.Parameters.Add("@userPwd", SqlDbType.VarChar, 20);
cmd.Parameters["@userPwd"].Value = userPwd;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
return true;
这个代码中没有说明那个表怎么知道是那个表。
迷茫中,求解!!

这个是执行存储过程的。
数据库的话在getConnection()里写了,你可以定义的这个方法里去看看。
上面这段代码是执行存储过程"insertUsers",并传入2个参数,值为userName和userPwd
参考技术A 找你的存储过程的代码啊~!追问

我没用过这个,这是别人写的,我研究一下的,是个新手。那个代码是不是在数据库中?

OleDB插入查询错误[重复]

【中文标题】OleDB插入查询错误[重复]【英文标题】:OleDB insert query error [duplicate] 【发布时间】:2017-08-02 21:27:06 【问题描述】:

这是我的代码,我收到插入错误。

请帮忙

OleDbConnection cnn = 新 OleDbConnection(dbConnection); cnn.Open(); OleDbCommand cmd = cnn.CreateCommand(); cmd.CommandType = CommandType.Text; cmd.CommandText = "插入 [Emp 数据] (" + “EmpID, Active, EmpName, DOJ, DOL, [Next Manager], DOB, Department, Section, Design, [Father Name], Address, Town, CNIC, Education, [Habib Metro], [Salary PM], EmailID, [ JS 银行帐户]、[加入时的薪水]、[Last inc Rs]、[Last inc Date]、[Next of Kin Name]、关系、[Contact No]、评论、[离职原因]、DOC、[Shift Timings ]、[第 1 天休息]、[第 2 天休息]" + ") 值 (" + id + ", 'A' , '" + name + "', '" + doj + "', null '" + manager + "', '" + dob + "', '" + dept + "', ' " + section + "', '" + desg + "', '" + 父亲 + "', '" + add + "', '" + town + "', '" + cnic + "', '" +教育 + "', '" + MetroBank + "', " + 薪水PM + ", '" + 电子邮件 + "', '" + jsBank + "', " + 薪水 +", 0, 0, null, '" + kinName + "', '" + kinRelation + "', '" + kinContact + "', '" + cmets + "', null '" + doc + "', '" + shift + "', '" + offDay1 + "', '" + offDay2 + "');"; cmd.ExecuteNonQuery(); cnn.Close();

【问题讨论】:

专业提示,删除帖子中的<pre> 标签,然后突出显示所有代码并按CTRL+K 很好,我们都是先知,我们都知道,你遇到了什么样的错误。但是等等......我们不是......所以请说一个。 其抛出异常 "INSERT INTO 语句中的语法错误。" 只看一眼,我几乎可以保证你在连接所有这些变量时犯了一个错误。要么你有不正确的引用或空值,要么两者都有,等等。使用参数化查询来缓解这些问题并防止 SQL 注入。 【参考方案1】:

我怀疑:

null '"

应该是:

null, '"

您在几个地方缺少逗号。

【讨论】:

在添加逗号后它仍然不工作,查询正在工作,但是当我通过 c# 代码发送查询时,它在 INSERT INTO 语句中抛出 Syxtax 错误的错误 只是显示 INSERT INTO 语句中的语法错误 不,不是@RizwanAhmed。那是exception。我想知道cmd.CommandText的内容。在cmd.ExecuteNonQuery(); 行上放一个断点,告诉我们cmd.CommandText 的值是多少。 blogs.msdn.microsoft.com/devops/2016/07/15/… 执行非查询方法的值当前上下文中不存在名称'ExecuteNonQuery' @RizWanAhmed 如果您不能分享cmd.CommandText 的内容,我绝对无能为力。

以上是关于cmd.CommandType = CommandType.StoredProcedure;采取的存储过程怎么理解?的主要内容,如果未能解决你的问题,请参考以下文章

c#备份还原MSSQL数据库

sql参数化查询

循环写入Insert 与 SqlBulkcopy

OleDB插入查询错误[重复]

Dataset.Fill 时程序没有响应/反应

确定 ExecuteNonQuery 成功执行 [重复]