-2

我知道我以前做过几次,但我这辈子都不记得怎么做了。我有一个我创建的数据库,我想制作一个只将信息输入数据库的软件。该程序有效,但我的 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);

            }
    }
}

先感谢您!:-)

4

5 回答 5

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();
于 2013-09-01T16:30:11.460 回答
3

您的 sql 连接字符串弄乱了,您需要在所有参数之间使用分号,并且您的参数也弄乱了。即,类似

“服务器=localhost;数据库=InventoryTracker;Trusted_Connection=True;”

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

TableName 不在连接字符串中。

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

您的 SQL 命令“INSERT INTO Inventory (ItemName ...”) 也很混乱。应该类似于

插入库存(ItemName ...)值(@ItemName ...)

然后你传入像这样的值

myCommand.Parameters.Add("ItemName", SqlType.VarChar).Value = "打蛋";

有关简单示例,请参阅将数据从 C# 代码插入 SQL Server

于 2013-08-30T19:16:38.467 回答
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";
于 2013-08-30T19:35:57.207 回答
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;"

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


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

于 2013-08-30T19:18:48.803 回答
0

不要忘记调用myCommand.ExecuteNonQuery它以实际执行您的查询。没有这个,你只是在创建一个命令,而不是运行它。

于 2013-08-30T19:22:25.770 回答