将VarChar转换为Int时出错 [英] Error converting VarChar into Int

查看:60
本文介绍了将VarChar转换为Int时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

表成员:

table Member:

MemberID | MemberName | Type





插入查询:



Insert query:

ALTER PROCEDURE [dbo].[SavetblMember]

(
@MemberID varchar (50),
@MemberName varchar (50),
@Type varchar (50)
)


as

INSERT INTO tblMember(MemberID, MemberName, Type)
VALUES(@MemberID, @MemberName, @Type)





C#代码:(保存会员)



C# code:(to save the member)

private void btnAdd_Click(object sender, EventArgs e)
        {
            try
            {
                string c = ConfigurationManager.ConnectionStrings["Constr"].ConnectionString;
                SqlConnection conn = new SqlConnection(c);
                SqlCommand cmd = new SqlCommand("SavetblMember", conn);
                conn.Open();
                cmd.ExecuteNonQuery();
                cmd.Parameters.Add("@MemberID", SqlDbType.VarChar, 50).Value = metroTextBox1.Text;
                cmd.Parameters.Add("@MemberName", SqlDbType.VarChar, 50).Value = metroTextBox2.Text;
                cmd.Parameters.Add("@Type", SqlDbType.VarChar, 50).Value = CombMemType.Text;
                conn.Close();
                storedprocMem();

            }

            catch (SqlException ex)
            {
                MetroMessageBox.Show(this, "Error" + ex.Message);
            }
        }





当我尝试添加成员,更新和删除时,它会抛出Sqlexception:< b>错误程序或函数'SavetlMem'表示参数'@MemberID',未提供。

我在参数之后放置了执行语句,它给了我同样的错误。

我尝试过OleDbtype,但没有用。



When I try to Add member,update and delete, it throws me Sqlexception: Error procedure or Function 'SavetlMem'expects parameter '@MemberID', which was not supplied.
I put execute statement after the parameter it gives me same error.
I tried by OleDbtype for it but didn't work.

推荐答案

在添加参数之前,你正在执行查询。
You're executing the query before you're adding the parameters.


你试图在添加参数之前执行语句
You're trying to execute the statement before you add the parameters.


似乎是在调用存储的过程 - 但我从来没有将我的SqlCommand定义为存储过程:



使用(SqlCommand cmd = new SqlCommand(dbo.usp_ClientHistoryItem,conn))

{

cmd.CommandType = CommandType.StoredProcedure; //添加这一行告诉ADO.NET这是一个存储过程!!





}



完美运行......
Seem to be calling a stored procedure - yet I've never defined my SqlCommand to be a stored procedure:

using (SqlCommand cmd = new SqlCommand("dbo.usp_ClientHistoryItem", conn))
{
cmd.CommandType = CommandType.StoredProcedure; // add this line to tell ADO.NET it's a stored procedure!!


}

running perfectly...


这篇关于将VarChar转换为Int时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆