C# 基本SQL的问题

C# 基本SQL的问题,c#,sql,sql-server,C#,Sql,Sql Server,我是SQL的初学者。我有一个问题。 首先,我会让你知道我安装了SQL 2005 Server n,然后制作了一个控制台App,其余代码在下面: using System; using System.Collections.Generic; using System.Text; using System.Data.SqlClient; namespace ConsoleApplication1 { class Program { static void Main(

我是SQL的初学者。我有一个问题。 首先,我会让你知道我安装了SQL 2005 Server n,然后制作了一个控制台App,其余代码在下面:

using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            SqlConnection myConnection = new SqlConnection("user id=userid;" +
                                       "Password=validpassword;" +
                                       "Trusted_Connection=yes;" +
                                       "Data Source=localhost;" +
                                       "connection timeout=300");



            try
            {
                myConnection.Open();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }


            SqlCommand myCommand = new SqlCommand("INSERT INTO table (Column1, Column2) " +
                                      "Values ('string', 1)", myConnection);

            myCommand.ExecuteNonQuery();



        }
    }
}
当我运行它时,我得到一个未处理的异常,类型为'System.Data.SqlClient.SqlException',在System.Data.dll中发生,使用myCommand.ExecuteNonQuery()


我只想做一些简单的事情。插入一些东西然后阅读。但即使在插入时我也会出错。

与数据库的连接有问题-用户名、密码和/或服务器错误,或者表和列不存在。我会在catch语句上放置一个断点,并查看异常以了解更多信息。

您没有使用数据库。将连接字符串中的初始目录查询设置为表“table”所在的数据库。或者,在dbName..表值中插入


还有,看看。学习它,使用它,热爱它。

您的连接中似乎缺少初始目录参数。它应该是“初始目录=数据库名”。另外,如果您使用的是受信任的连接,则不需要用户id和密码参数。

开始移动异常处理以包含ExecuteOnQuery,然后编辑包含完整异常的问题

        static void Main(string[] args)
        {
            SqlConnection myConnection = new SqlConnection("user id=userid;" +
                                       "Password=validpassword;" +
                                       "Trusted_Connection=yes;" +
                                       "Data Source=localhost;" +
                                       "connection timeout=300");


            try
            {
                myConnection.Open();

                SqlCommand myCommand = new SqlCommand("INSERT INTO table (Column1, Column2) " +
                                      "Values ('string', 1)", myConnection);
                myCommand.ExecuteNonQuery();    
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }

如果捕获异常,或调试console应用程序以查看异常详细信息,则应该能够通过检查异常消息或内部异常来找出错误的完整详细信息

        static void Main(string[] args)
        {
            SqlConnection myConnection = new SqlConnection("user id=userid;" +
                                       "Password=validpassword;" +
                                       "Trusted_Connection=yes;" +
                                       "Data Source=localhost;" +
                                       "connection timeout=300");


            try
            {
                myConnection.Open();

                SqlCommand myCommand = new SqlCommand("INSERT INTO table (Column1, Column2) " +
                                      "Values ('string', 1)", myConnection);
                myCommand.ExecuteNonQuery();    
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }

正如Chad所提到的,这可能是一个简单的命名问题,其中您在查询中指定的表或列在指向的数据库中不存在。或者,您试图解释的数据类型可能存在问题。异常返回的DB Server消息将让您了解更多信息

安装SQL Server 2005时,是否将其置于混合模式?您需要输入用户名和密码。我不确定.NET将如何处理连接字符串中的用户名/密码和trusted connection=true。你的连接是开放的吗

在连接字符串中还需要数据库名称


我不能在你的帖子上添加逗号,所以我会在这里添加。您需要启动SQLServerManagementStudio才能访问数据库和未来的表。然后转到“帮助”并开始在线阅读有关如何创建表的书籍。

是否打开连接?是否已创建表?可能也使用Using语句?非常好!连接字符串中没有“Initial Catalog=”或“database=”-那么该“表”存在于何处?:-)