Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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# 如何将项目添加到本地SQL数据库?_C#_Sql Server - Fatal编程技术网

C# 如何将项目添加到本地SQL数据库?

C# 如何将项目添加到本地SQL数据库?,c#,sql-server,C#,Sql Server,目前,我正在尝试创建一个日历,并尝试通过本地SQL数据库使用表。虽然向我展示了如何选择和创建新的数据库和表,但我无法插入任何内容。我四处搜索过,看到的大部分内容都使用SqlConnection,但是,如果我尝试使用它,它将无法识别名称空间,并且尝试使用using-命令也不会产生太多结果。 现在这是我的代码,包括用户输入数据的表单,我尝试将数据推入数据库: <h3>Set a reminder/event</h3> <% string setRem

目前,我正在尝试创建一个日历,并尝试通过本地SQL数据库使用表。虽然向我展示了如何选择和创建新的数据库和表,但我无法插入任何内容。我四处搜索过,看到的大部分内容都使用SqlConnection,但是,如果我尝试使用它,它将无法识别名称空间,并且尝试使用using-命令也不会产生太多结果。 现在这是我的代码,包括用户输入数据的表单,我尝试将数据推入数据库:

<h3>Set a reminder/event</h3>


        <% string setReminderValue = Request.QueryString["setReminder"]; %>
        <!-- Takes the ID of the date that the user selects above (setReminder), converts it and allows the form to use it further as the name of eventId. -->

        <form method="POST" action="WebForm1.aspx"> 
            <input type="hidden" name="eventId" value="<%= setReminderValue %>" />
            Event name: <input type="text" name="reminderName" /> <br />
            <input type="submit" name="submitReminder" value="Set"> <br /> 

        </form>            


    <% 

        }

        var submitReminder = Request["submitReminder"];
        var reminderName = Request["reminderName"];
        var eventId = Request["eventId"];



        if (submitReminder != null)
        { 

            var cmd = "INSERT INTO CalendarData(Day, Text) VALUES('eventId' , 'reminderName')";
// Currently with no functionality, but how to execute it is outside my knowledge range, which isn't very large at all, yet.

        }
         %>

尝试按如下方式执行命令:

        SqlConnection conn = new SqlConnection("Server=localhost; Database=YOURDATABASENAME;UserId=YOURLOGINNAME;Password=YOURPASSWORD;");
        SqlCommand comm = new SqlCommand("YOUR CMD STRING");
        int affectedRows = comm.ExecuteNonQuery();

要使用sql客户机,您需要使用:System.Data.SqlClient。另一个不同的选项是右键单击SqlConnection,并使用更改和using there来插入using sry,因为它不是studio的英文版本,所以不确定确切的英文名称是什么。除此之外,用法如下:

using(SqlConnection connection = new SqlConnection(myConnectionString))
{
    connection.Open();
    string sql =  "INSERT INTO CalendarData(Day, Text) VALUES(@param1,@param2)";
        SqlCommand cmd = new SqlCommand(sql,connection);
        cmd.Parameters.Add("@param1", SqlDbType.Varchar, 50).value = eventId;
        cmd.Parameters.Add("@param2", SqlDbType.Varchar, 50).value = reminderName;
        cmd.CommandType = CommandType.Text;
        cmd.ExecuteNonQuery();

    connection.Close();
}
那么这有什么用呢?虽然我个人倾向于写连接,但是使用确保变量在之后被处理,并且应该关闭连接。关闭不管,因为我在过去有一些奇怪的情况

然后设置命令文本并执行non-query-nonquery,因为您不需要结果,而是需要插入

@param是占位符,您可以通过cmd.Parameters.Add来定义它们真正代表的含义。这有助于避免sql注入,因为添加的参数会适当地转换值,所以sql注入不是问题


myconnectionString您需要输入程序如何连接到您的服务器。您必须查找适当的字符串以了解您需要如何连接,因为它们包含连接所需的所有信息,因此是特定于系统的

看起来没有提供上一个sql语句

String query = "INSERT INTO dbo.CalendarData(Day, Text) VALUES (@eventId, @reminderName)";
using(SqlConnection connection = new SqlConnection(connectionString))
using(SqlCommand command = new SqlCommand(query, connection))
{
    //a shorter syntax to adding parameters
    command.Parameters.AddWithValue("@eventId", 1);

    command.Parameters.Add("@reminderName", "abc");

    //make sure you open and close(after executing) the connection
    connection.Open();
    command.ExecuteNonQuery();
    connection.Close();
}

嗯,你发布的内容在插入方面没有任何功能。将varialbe cmd设置为包含insert命令的字符串,但根本不使用它。这就是全部密码吗?如果是这样的话,这就是为什么它会这样做的原因nothing@Thomas这确实是全部代码,但我可以说我对C语言非常陌生,因此我不完全确定如何实际执行这些东西。网上有很多教程。你试过谷歌吗?@FelixPamittan就像我在最初的帖子中说的,我在谷歌上搜索了很多人,我能找到的就是使用SqlConnection的人,如果这是我需要使用的东西,我也从中得到了错误。如果你想得到关于这方面的答案,那么就举一个例子,当你使用sql连接时,在那里得到错误,并在那里输入错误是什么。忽略最后一部分,然后获取注释。除此之外,据我所知,sql连接或entityframework是最突出的变体。这就是问题所在,尽管我在.cs文件中使用了正确的using命令,并加载了引用,但它抱怨并告诉我没有。同样对你来说,如果你看到这个,@steppp这是不寻常的,如果你的源文件中有正确的using statemejn,他不应该抱怨,至少如果他不抱怨using本身,那么他知道引用。您使用的是哪个版本的visual studio我使用的是VS2013,如果我手动添加System.Data.SqlClient或命令前面的任何内容,它会将其识别为引用,而我仍然会收到错误。