Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用参数从C#中的文本框插入数据库_C#_Sql - Fatal编程技术网

使用参数从C#中的文本框插入数据库

使用参数从C#中的文本框插入数据库,c#,sql,C#,Sql,我是c#的新手。我正在尝试将文本框中的值插入数据库中的表中 表名:地址 字段:名称(varchar(50)), 年龄(整数), 城市(nchar(10)) 当我尝试从数据库中检索值时,它工作得非常好。 这是我的密码。请帮我纠正一下 string s = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User I

我是c#的新手。我正在尝试将文本框中的值插入数据库中的表中

表名:地址

字段:名称(varchar(50)), 年龄(整数), 城市(nchar(10))

当我尝试从数据库中检索值时,它工作得非常好。 这是我的密码。请帮我纠正一下

            string s = @"Data      Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated  Security=True;User Instance=True";
            SqlConnection a = new SqlConnection(s);

            a.Open();
            SqlCommand comm = new SqlCommand("INSERT INTO [address](name,age,city)  VALUES(@na,@ag,@ci)");
            string na = textBox1.Text;
            int ag = int.Parse(textBox2.Text);
            string ci = textBox3.Text;

            comm.Parameters.Add("@na", System.Data.SqlDbType.VarChar,50).Value = na;
            comm.Parameters.Add("@ag", System.Data.SqlDbType.Int).Value = ag;
            comm.Parameters.Add("@ci", System.Data.SqlDbType.NChar,10).Value = ci;
            comm.Connection = a;
            comm.ExecuteNonQuery();
            MessageBox.Show("okay");
            a.Close();
这些值不会反映在数据库中。

请尝试使用以下代码:

string connectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated  Security=True;User Instance=True";

using (SqlConnection connection = new SqlConnection(connectionString))
{

    using (SqlCommand insertCommand = connection.CreateCommand())

        {
            insertCommand.CommandText = "INSERT INTO address(name,age,city) VALUES (@na,@ag,@ci)";
            insertCommand.Parameters.Add("@na", na);
            insertCommand.Parameters.Add("@ag", ag);
            insertCommand.Parameters.Add("@ci", ci);


            insertCommand.Connection.Open();
            insertCommand.ExecuteNonQuery();


        }
}
请尝试使用以下代码:

string connectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated  Security=True;User Instance=True";

using (SqlConnection connection = new SqlConnection(connectionString))
{

    using (SqlCommand insertCommand = connection.CreateCommand())

        {
            insertCommand.CommandText = "INSERT INTO address(name,age,city) VALUES (@na,@ag,@ci)";
            insertCommand.Parameters.Add("@na", na);
            insertCommand.Parameters.Add("@ag", ag);
            insertCommand.Parameters.Add("@ci", ci);


            insertCommand.Connection.Open();
            insertCommand.ExecuteNonQuery();


        }
}


在我的脑海中,我要说的是,这是一个文件系统权限问题,因为他附加了一个SQLExpress文件。这只是一个猜测,但让我们看看它是否成立@AustinSalonen我没有收到任何错误,但是这些值没有反映在database.comm.Parameters.Add(“@na”,System.Data.SqlDbType.VarChar,50)中。Value=na;您可能需要尝试放置一个结束括号。comm.Parameters.Add(“@na”,System.Data.SqlDbType.VarChar,50).Value=na);简:那会有两个右括号。@JaneDoe我怎么能在没有左括号的情况下添加右括号呢。在我的脑海中,我想说这是文件系统权限问题,因为他正在附加一个SQLExpress文件。这只是一个猜测,但让我们看看它是否成立@AustinSalonen我没有收到任何错误,但是这些值没有反映在database.comm.Parameters.Add(“@na”,System.Data.SqlDbType.VarChar,50)中。Value=na;您可能需要尝试放置一个结束括号。comm.Parameters.Add(“@na”,System.Data.SqlDbType.VarChar,50).Value=na);Jane:那将构成两个结束括号。@JaneDoe我如何添加一个结束括号而不添加一个开始括号。为什么要使用关闭
中的SqlConnection?在治疗结束时使用call dispose它正在工作。插入的数据存在于数据库中,但不会更新数据库资源管理器中的表。当我使用select查询时,我得到了新的值。我可以知道为什么表没有更新吗?你必须在你的Exploratory中刷新你的表。你尝试过它不工作。还有一件事,数据只是暂时可用。当我关闭解决方案并再次打开它时,新插入的行将消失。我们需要做一些类似于PERSIST的事情吗?为什么要使用
关闭
中的SqlConnection?在治疗结束时使用call dispose它现在可以工作了。插入的数据存在于数据库中,但不会更新数据库资源管理器中的表。当我使用select查询时,我得到了新的值。我可以知道为什么表没有更新吗?你必须在你的Exploratory中刷新你的表。你尝试过它不工作。还有一件事,数据只是暂时可用。当我关闭解决方案并再次打开它时,新插入的行将消失。我们有没有像坚持这样的事情要做?