我只想遍历数据库中的结果。这就是我目前要做的一切! 这是我尝试调试时遇到的错误:
在以下情况下发生与网络相关或特定于实例的错误 建立与 SQL Server 的连接。找不到服务器或 无法访问。验证实例名称是否正确,以及 SQL Server 配置为允许远程连接。(提供程序:SQL 网络接口,错误: 26 - 查找服务器/实例时出错 指定)
它指向这一行:
// fill dataset into named table
myAdapter.Fill(myDataSet, "Sent");
这是我的整个代码:
// get connection strings from app.config
string conString = ConfigurationManager.ConnectionStrings["Database1ConnectionString"].ConnectionString;
// connection object
SqlConnection myConn = new SqlConnection(conString);
// create adapter
SqlDataAdapter myAdapter = new SqlDataAdapter("select * from `Sent`", myConn);
// create command builder
SqlCommandBuilder myCommandBuilder = new SqlCommandBuilder(myAdapter);
// create dataset
DataSet myDataSet = new DataSet();
// fill dataset into named table
myAdapter.Fill(myDataSet, "Sent");
// query using linq
IEnumerable<DataRow> results
= from row in myDataSet.Tables["Sent"].AsEnumerable()
select row;
// enumerate through results
foreach (DataRow row in results)
{
MessageBox.Show(row.ToString());
}
我该怎么做才能解决这个问题? 另外,如果有人有更简单的方法来使用 C# 中的数据库,我愿意接受您的想法,因为这对我来说很荒谬(在 c# 中操作数据库)。 谢谢你的帮助。
更新 6/29/12:
以下代码对我有用:
// get connection strings from app.config
string conString = ConfigurationManager.ConnectionStrings["Database1ConnectionString"].ConnectionString;
// connection object
SqlCeConnection myConn = new SqlCeConnection(conString);
// create adapter
SqlCeDataAdapter myAdapter = new SqlCeDataAdapter("select * from [Sent]", myConn);
// create command builder
SqlCeCommandBuilder myCommandBuilder = new SqlCeCommandBuilder(myAdapter);
// create dataset
DataSet myDataSet = new DataSet();
// fill dataset into named table
myAdapter.Fill(myDataSet, "Sent");
// create new row
DataRow newRow = myDataSet.Tables["Sent"].NewRow();
// set field vals
newRow["sendTo"] = sendTo;
newRow["subject"] = subject;
newRow["message"] = message;
// add new row to table
myDataSet.Tables["Sent"].Rows.Add(newRow);
// update database
myAdapter.UpdateCommand = myCommandBuilder.GetUpdateCommand();
int updatedRows = myAdapter.Update(myDataSet, "Sent");
//MessageBox.Show("There were "+updatedRows.ToString()+" updated rows");
// close connection
myConn.Close();
首先:检查您的连接字符串错误直接告诉您"嘿,我无法连接到您的数据库"
第二:select * from Sent
(不带撇号)
您是否更改了在安装 SQL Server 的计算机中使用的密码?我以前经历过这种情况,我所做的是将我的新密码反映到 SQL Server 配置中,然后重新启动服务。
另请确保在 SQL 配置设置中启用了 TCP/IP 设置。
当我们没有在SQL Server配置管理器中更改TCP/IP设置时,会出现这种错误。所以我们需要启用 tcp/ip 属性来解决此错误
可能在这里陈述显而易见的事情,但您是否检查过 SqlExpress 服务是否正在运行?
https://stackoverflow.com/a/4650231/1095373
我没有使用正确的代码(它与任何连接内容没有任何关系)。 这是我第一次尝试用PHP以外的语言连接到数据库。 现在,我可能会使用 LINQ 或 Lambda 表达式而不是此代码。 但这是我使用的有效方法:
// get connection strings from app.config
string conString = ConfigurationManager.ConnectionStrings["Database1ConnectionString"].ConnectionString;
// connection object
SqlCeConnection myConn = new SqlCeConnection(conString);
// create adapter
SqlCeDataAdapter myAdapter = new SqlCeDataAdapter("select * from [Sent]", myConn);
// create command builder
SqlCeCommandBuilder myCommandBuilder = new SqlCeCommandBuilder(myAdapter);
// create dataset
DataSet myDataSet = new DataSet();
// fill dataset into named table
myAdapter.Fill(myDataSet, "Sent");
// create new row
DataRow newRow = myDataSet.Tables["Sent"].NewRow();
// set field vals
newRow["sendTo"] = sendTo;
newRow["subject"] = subject;
newRow["message"] = message;
// add new row to table
myDataSet.Tables["Sent"].Rows.Add(newRow);
// update database
myAdapter.UpdateCommand = myCommandBuilder.GetUpdateCommand();
int updatedRows = myAdapter.Update(myDataSet, "Sent");
//MessageBox.Show("There were "+updatedRows.ToString()+" updated rows");
// close connection
myConn.Close();