问题描述
我是一名C#的初学者,正在完成毕业设计,以下是我设计中的一段代码,通过这段代码实现点击按钮空间能够下载SQL数据库里的数据到仿真手持机上,可是在仿真时,点击下载按钮的时候总是提示我“找不到指定的SQL:USER-20150328DBSQLEXPRESS,我很确定我的数据库服务器、ID、密码都是正确的。有没有好心人能帮忙解决啊~找了很多同学帮我看都没弄懂为什么,请解释的时候尽量简明详细,没学过C#语言好伤不起。usingSystem;usingSystem.Linq;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;usingSystem.Data.SqlServerCe;namespacexml_project{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidbutton1_Click(objectsender,EventArgse){try{DataSetds=newDataSet();SqlConnectioncnn=newSqlConnection(@"server=USER-20150328DBSQLEXPRESS;uid=sa;pwd=password123;database=xml;");cnn.Open();SqlCommandcomm=null;comm=newSqlCommand(@"SELECTname,idFROMusertable",cnn);SqlDataAdapterda=newSqlDataAdapter();da.SelectCommand=comm;da.Fill(ds,"usertable");ds.WriteXml(@"MyDocumentsa.xml",XmlWriteMode.WriteSchema);}catch(SqlExceptionex){MessageBox.Show(ex.Message);}if(System.IO.File.Exists(@"MyDocumentsxml.sdf"))System.IO.File.Delete(@"MyDocumentsxml.sdf");SqlCeEngineeng=newSqlCeEngine(@"DataSource=MyDocumentsxml.sdf");eng.CreateDatabase();SqlCeConnectionconn=newSqlCeConnection(@"DataSource=MyDocumentsxml.sdf");conn.Open();SqlCeCommandcmndLocal=newSqlCeCommand();cmndLocal.Connection=conn;cmndLocal.CommandText="CREATETABLETable_1(namenchar(10),idnchar(10))";cmndLocal.ExecuteNonQuery();DataSetdsEx=newDataSet();dsEx.ReadXml(@"MyDocumentsa.xml",XmlReadMode.ReadSchema);stringtabname="usertable";stringseleStr="SELECTname,idFROMTable_1";SqlCeDataAdaptersda=newSqlCeDataAdapter();sda.SelectCommand=newSqlCeCommand(seleStr,conn);newSqlCeCommandBuilder(sda);sda.Fill(dsEx,tabname);dsEx.Tables["Table_1"].Merge(dsEx.Tables["usertable"]);sda.Update(dsEx,tabname);conn.Close();conn.Dispose();MessageBox.Show("数据下载成功");显示frmPress=new显示();frmPress.Show();this.Hide();}
解决方案
解决方案二:
如果数据不在本机,你要确认USER-20150328DB这个机器名是不是正确的,可以ping一下这个机器名看通不通,如果通,再用telnet试试能不能打开1433端口。如果是本机,改用“.sqlexpress”试试。
解决方案三:
建议你把连接改成本地的来试试先,如果换成本地的都不行,那就可能是你的配置或者代码有错误的地方。如果可以,那就要检测一下远端的服务器有没有问题了。
解决方案四:
确定你数据库服务器的机器名称是USER-20150328DB,在你运行程序的机器上,执行pingUSER-20150328DB命令,看能否ping通数据库服务器.如果不行,那肯定是不能连接数据库了,先想办法將设备连好了再来吧.或者你直接將服务器换上固定IP,然后pingIP看是否连通,能连通后,程序配置字符串服务器名称改成IP地址如:stringstrcon=@"server=127.0.0.1;uid=sa;pwd=password123;database=xml;";
解决方案五:
问题最大可能还是出在仿真手持机设备跟你sql服务器机器不在同一个网段,两者无法访问.
解决方案六:
你的仿真设备,跟你本机不是同一个工作组吧,这里要访问数据库,最好用IP。在CMD里面ipconfig查看ipv4的ip,然后用这个ip加上你的实例名
解决方案七:
这个数据是在本机上,你是说把大写SQLEXPRESS的改成小写的“.sqlexpress吗
解决方案八:
你应该使用SQL验证,通过TCP/IP协议来访问数据库不要用form验证