我知道我之前已经做了几次但是因为我的生活不记得如何。 我有一个我创建的数据库,我想制作一个只将信息输入数据库的软件。该程序有效,但我的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);
}
}
}
提前谢谢! : - )
答案 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
让它实际执行您的查询。如果没有这个,你只是创建一个命令,但不运行它。