繁体   English   中英

如何在Visual Studio 2017中使用C#建立SQL连接?

[英]how to build a SQL connection using C# in Visual Studio 2017?

我一直使用Oledb Connection。 但是现在我需要通过Sql连接与数据库连接,但我不知道该怎么做,有人可以为我提供一个与sql连接连接的数据库示例吗?

此代码需要sql连接才能成功完成。

protected void Button1_Click(object sender, EventArgs e)
{
    string st = this.TextBox1.Text;
    string sqlstr2 = "select * from hsinfo WHERE rname='"+st+ "'";

    SqlCommand cmd = new SqlCommand(sqlstr2,);
    using (SqlDataReader rd = cmd.ExecuteReader())
    {
        this.Label1.Text = rd["rmail"].ToString();
    }
}

您可以查看Microsoft的官方页面以获取更多详细信息SqlConnection类 ,但是我将在下面重现给定的示例...

另外,您还可以检查上一个链接中链接的“ 连接字符串语法”

private static void CreateCommand(string queryString,
    string connectionString)
{
    using (SqlConnection connection = new SqlConnection(
               connectionString))
    {
        SqlCommand command = new SqlCommand(queryString, connection);
        command.Connection.Open();
        command.ExecuteNonQuery();
    }
}

没有足够的信息为您建立连接,但是总之,您会这样:

Server=...;Database=...;User ID=...;Password=...;

有关更多信息,请访问ConnectionStrings网站。

请尝试以下代码,有关c#SQL Server连接的更多信息,请参见此SQL Server连接。

string connetionString = null;
        SqlConnection cnn ;
        connetionString = "Data Source=ServerName;Initial Catalog=DatabaseName;User ID=UserName;Password=Password"
        cnn = new SqlConnection(connetionString);
        try
        {
            cnn.Open();
            MessageBox.Show ("Connection Open ! ");
            cnn.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show("Can not open connection ! ");
        }

我会做这样的事情:

public static List<Test> GetTests(string testVariable)
{
    DataTable result = new DataTable();
    using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["Database"].ConnectionString))
    {
        connection.Open();

        GetQuery(
            connection,
            QueryGetTests,
            ref result,
            new List<SqlParameter>()
            {
                new SqlParameter("@testVariable", testVariable)
            }
        );

        return result.Rows.OfType<DataRow>().Select(DataRowToTest).ToList();
    }
}

private static void GetQuery(SqlConnection connection, string query, ref DataTable dataTable, List<SqlParameter> parameters = null)
{
    dataTable = new DataTable();
    using (SqlCommand command = new SqlCommand(query, connection))
    {
        command.CommandTimeout = 120;
        if (parameters != null)
        {
            foreach (SqlParameter parameter in parameters)
            {
                command.Parameters.Add(parameter);
            }
        }
        using (SqlDataAdapter reader = new SqlDataAdapter(command))
        {
            reader.Fill(dataTable);
        }
    }
}

我认为这可以为您提供帮助。

    string sqlString = "select * from hsinfo WHERE rname=@st";

    using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DatabaseName"].ConnectionString))
    {
        conn.Open();
        using (SqlCommand cmd = new SqlCommand(sqlString, conn))
        {
            cmd.Parameters.Add("@st", st);

            using (SqlDataReader rd = cmd.ExecuteReader())
            {
                if (rd.Read())
                {
                    this.Label1.Text = rd["rmail"].ToString();
                }
            }
        }
    }

特技:

  1. 在桌面上创建带有.udl扩展名的文件
  2. 双击运行
  3. 通过选择提供程序,用户名,密码等来编译表格...
  4. 测试连接并保存
  5. 关闭表格
  6. 用记事本打开.udl文件
  7. 您将看到可以与ADO.NET一起使用的连接字符串。

这是一个简单的示例代码,并且可以正常工作。 这可能对您有帮助。 这里NextMonth,NextYear,ProcessedDate是自动计算的值,来自另一个函数,不用考虑这一点。

        String cs = @"Data Source=LENOVO-G510;Initial Catalog=Nelna2;Persist Security Info=True;User ID=sa;Password=123";
    protected void Save_Click(object sender, EventArgs e)
    {
        // SqlConnection con = new SqlConnection(cs);

        using (SqlConnection con = new SqlConnection(cs))
        {
            try
            {
                SqlCommand command5 = new SqlCommand("insert into MonthEnd (month,year,ProcessedDate) values (@month2,@year2,@ProcessedDate2) ", con);

                command5.Parameters.AddWithValue("@month2", NextMonth);
                command5.Parameters.AddWithValue("@year2", NextYear);
                command5.Parameters.AddWithValue("@ProcessedDate2", ProcessedDate);

                command5.ExecuteNonQuery();

            }
            catch (SqlException ex)
            {
                Response.Write(ex.Message);
            }
        }
    }

可以在数据库属性中找到连接字符串。 右键单击数据库->属性,然后获取连接字符串

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM