c#程序在sql数据库中插入行

时间:2013-08-30 19:04:54

标签: c# .net sql sql-server database

我知道我之前已经做了几次但是因为我的生活不记得如何。 我有一个我创建的数据库,我想制作一个只将信息输入数据库的软件。该程序有效,但我的SQL连接是问题。所以为了测试它我基本上试图直接插入硬编码信息,但它仍然不会去。我哪里错了?:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.Common;
    using System.Data.SqlClient;
    using System.Data.Sql;

    namespace InventoryTracker
    {
        public partial class Form1 : Form
        {
          public Form1()
            {
                InitializeComponent();
            }


            public static void CreateCommand()
            {
                SqlConnection myConnection = new SqlConnection("User Id=Jab" + "password=''" + "Data Source=localhost;" + "Trusted_Connection=yes;" + "database=InventoryTracker;" + "Table=Inventory;");

                try
                {
                    myConnection.Open();
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.ToString());
                }
                SqlCommand myCommand = new SqlCommand("INSERT INTO Inventory (ItemName, SerialNumber, Model, Department, Quantity, Notes) " + "Values (string,string,string,string, 1, string)", myConnection);

            }
    }
}

提前谢谢! : - )

5 个答案:

答案 0 :(得分:3)

你的sql连接字符串搞砸了,你需要在所有参数之间使用分号,你的参数也搞砸了。即,像

“服务器=本地主机;数据库= InventoryTracker; Trusted_Connection = TRUE;”

您正在混合受信任模式并指定用户ID - 受信任的连接意味着使用您的Windows登录凭据。

TableName不会进入连接字符串。

此网站非常适合连接字符串示例http://www.connectionstrings.com/sql-server-2008

您的SQL命令,“INSERT INTO Inventory(ItemName ...”)也非常混乱。应该像

INSERT INTO Inventory(ItemName ...)值(@ItemName ...)

然后传入像

这样的值

myCommand.Parameters.Add(“ItemName”,SqlType.VarChar).Value =“十二个鸡蛋”;

有关简单示例,请参阅Insert data into SQL Server from C# code

答案 1 :(得分:3)

只需使用SqlConnectionStringBuilder类。

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnectionstringbuilder.aspx

而不是:

"User Id=Jab" + "password=''" + "Data Source=localhost;" + "Trusted_Connection=yes;" + "database=InventoryTracker;" + "Table=Inventory;");

尝试:

SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
builder.UserID = "Jab";
builder.Password = "";
builder.DataSource = "localhost";
builder.InitialCatalog = "InventoryTracker";

答案 2 :(得分:3)

// Don't put table name in your connection string
    string connection_str = "Data Source = localhost ; uid = db_user; pwd = db_pass; database = db_name; ";
     conn = new SqlConnection(connection_str);
     conn.Open();

答案 3 :(得分:1)

尝试更改

"User Id=Jab" + "password=''" + "Data Source=localhost;" + "Trusted_Connection=yes;" + "database=InventoryTracker;" + "Table=Inventory;"

"User Id=Jab; " + "Password=''; " + "Data Source=localhost; " + "Trusted_Connection=yes; " + "Initial Catalog=InventoryTracker;"

(将大/小写,“数据库”更改为“初始目录”,删除“表”并添加“;”)


此外,您可能想尝试将“数据源”替换为“服务器”。

答案 4 :(得分:0)

不要忘记致电myCommand.ExecuteNonQuery让它实际执行您的查询。如果没有这个,你只是创建一个命令,但不运行它。