如何通过类将数据发送到SQL [英] How to send data to SQL through class

查看:60
本文介绍了如何通过类将数据发送到SQL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好伙计..



如果你能帮我这个,



我'我试图通过课程发送一些数据,但它不工作

显示此错误

(参数化查询'(@ name nvarchar(4000),@ SEX nvarchar(4000) )插入到tbltxt(nam'期望参数'@ name',这是未提供的)

hello folks..

if you could please help me with this,

i'm trying to send some data through class but it's not working
showing this error
(The parameterized query '(@name nvarchar(4000),@SEX nvarchar(4000))insert into tbltxt(nam' expects the parameter '@name', which was not supplied)

class setdate
        {
            public string _name;
            public string _sex;

            public string name { set { this._name = value; } }
            public string sex { set { this._sex = value; } }
            public setdate()
            {
                using (SqlConnection cn = new SqlConnection(@"Data Source=~"))
                {
                    cn.Open();
                    using (SqlCommand cmd = new SqlCommand("insert into tbltxt(name,SEX)values(@name,@SEX)", cn))
                    {
                        
                        cmd.CommandType = CommandType.Text;
                        cmd.Parameters.Add("@name", SqlDbType.NVarChar).Value = this._name;
                        cmd.Parameters.Add("@SEX", SqlDbType.NVarChar).Value = this._sex;
                        cmd.ExecuteNonQuery();
                        MessageBox.Show("data has been sent");
                        
                    }
                }
             
            }

        }



即时通讯使用sql数据库和windows应用程序,网络框架4.5



我尝试过:



i尝试以这种方式使用get set


im using sql database and windows application,net framework 4.5

What I have tried:

i tried to use get set in this way

public string name { get; set; }
                public string sex { get; set; }

推荐答案

构造函数用于构造(因此名称 - 构造函数)。



将插入代码移动到单独的方法中,并在AFTER实例化类时调用。如果您坚持不这样做,请更改构造函数原型以接受必要的参数。



查看代码后,我得说,这是废话。这样做



The constructor is for "constructing" (hence the name - "constructor").

Move your insert code into a separate method and call if AFTER instantiating the class. If you insist on not doing that, change the constructor prototype to accept the necessary parameters.

After looking at your code, I gotta say, it's crap. Do it this way

public static class DateSetter
{
    public static void SetDate(string name, string sex)
    {
        if (string.IsNullOrEmpty(name))
        {
            throw new ArgumentNullException("name");
        }
        if (string.IsNullOrEmpty(sex))
        {
            throw new ArgumentNullException("sex");
        }
        using (SqlConnection conn = new SqlConnection(@"Data Source=~"))
        {
            conn.Open();
            using (SqlCommand cmd = new SqlCommand("insert into [databasename].[tbltxt]([name],[SEX])values(@name,@SEX)", conn))
            {
                cmd.CommandType = CommandType.Text;
                cmd.Parameters.Add(new SqlParameter("@name", name));
                cmd.Parameters.Add(new SqlParameter("@SEX", sex));
                cmd.ExecuteNonQuery();
                MessageBox.Show("data has been sent");
            }
        }
    }
}





您不需要房产或类中的变量。



You don't need properties or variables in the class.


你好jame01,



编码一个单独的方法并将你的插入语句代码移动到该方法并调用那个方法。

因为代码在你的构造函数中你不会得到值。所以它抛出错误。



谢谢
hello jame01,

code a separate method and move your insert statment code to that method and call that method.
since that code is in your constructor you will not get values. so it is throwing the error.

Thanks


这篇关于如何通过类将数据发送到SQL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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