【发布时间】:2019-08-28 20:57:13
【问题描述】:
更新: 史蒂夫https://stackoverflow.com/a/57692761/5758150的这个很好的回答 加上需要包括:我的连接字符串中的 Integrated Security=SSPI 已经解决了这个问题。 非常感谢大家的帮助。
我是 C# 新手,这是我的第一个项目。 该代码旨在查询 sql server 表并将结果返回到 windows 窗体上的 datagridviewer 中。 表单编译时没有错误,只是显示一个空白的 datagridviewer。
谁能告诉我我做错了什么? 我检查了服务器名称数据库名称等,它们都是正确的。
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data;
using System;
using System.Data.SqlClient; //For SQL Connection
namespace Reference_Table_Updater
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
void GetList()
{
String strConnection = "server;" +
"Database='Scratchpad';";
SqlConnection con = new SqlConnection(strConnection);
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.Connection = con;
sqlCmd.CommandType = CommandType.Text;
sqlCmd.CommandText = "Select * from dbo.UPDATE_Test";
SqlDataAdapter sqlDataAdap = new SqlDataAdapter(sqlCmd);
DataTable dtRecord = new DataTable();
sqlDataAdap.Fill(dtRecord);
dataGridView1.DataSource = dtRecord;
}
private void Form1_Load()
{
GetList();
}
}
}
【问题讨论】:
-
分配数据源后是否尝试调用
dataGridView1.Refresh(); -
代码似乎是正确的。但是,该连接字符串似乎是假的,以这种形式它不应该工作,但是在执行 Fill 方法时应该会出错。真正的连接字符串是什么?
-
是的,没有区别。
-
String strConnection = "server= uk-DEV-dtwh-01\\WH02;" + "Database='Scratchpad';";
-
我用 \\ 转义了服务器名称中的 \