我只想循环遍历数据库中的结果。这就是我在这一点上所做的一切!这是我尝试调试时遇到的错误:
发生与网络相关或特定于实例的错误 建立与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();
答案 0 :(得分:1)
首先:检查你的连接字符串错误直接告诉你“嘿,我无法连接到你的数据库”
第二:select * from Sent
(没有撇号)
答案 1 :(得分:1)
您是否更改了在安装SQL Server的计算机中使用的密码?我之前遇到过这种情况,我所做的是将我的新密码反映到SQL Server配置中,然后重新启动服务。
还请确保在SQL配置设置中启用了TCP / IP设置。
答案 2 :(得分:0)
当我们没有更改sql server配置管理器中的tcp / ip设置时会出现这种错误。所以we need enable the tcp/ip property to resolve this error
答案 3 :(得分:0)
可能会在这里说明显而易见但你检查过SqlExpress服务是否正在运行?
答案 4 :(得分:0)
我没有使用正确的代码(它与任何连接内容没有任何关系)。这是我尝试使用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();