Wince连接通过wifi与电脑进行通信

wpamn_c 2012-11-21 04:34:58
wince5.0系统,VS2008开发环境,项目需求:
1:通过wifi与电脑进行信号传输,
2:访问电脑SQL数据库,进行简单的select,delete,update功能。

哪位大虾做过这样的项目,求指点。下面是我的代码,
1:连接SQL时,每次到 connection.open()时,直接跳到exception,求高手帮帮忙!
2:通过wifi,收发信号的也不好使,求指点迷津。


/这个是连接数据库的,相关的Sql的dll文件我也都拷贝到项目中了。
private void button1_Click(object sender, EventArgs e)
{
string connectionString = GetConnectionString();

string queryString = "SELECT * FROM BBB";
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = connection.CreateCommand();
command.CommandText = queryString;
try
{
//MessageBox.Show("马上进行连接");
connection.Open();
MessageBox.Show("连接成功");
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
//Console.WriteLine("\t{0}\t{1}", reader[0], reader[1]);
MessageBox.Show(Convert.ToString(reader[0]));
}
reader.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
static private string GetConnectionString()
{
//return "Data Source=192.168.0.55;Initial Catalog=EY_TCCSFXT;User ID=sa;Password=;";
//return "Data Source=192.168.0.55;Database=EY_TCCSFXT;UID=sa;pwd=;";
return "server=EY812B;uid=sa;pwd=;database=EY_TCCSFXT;";
//return "Data Source=192.168.0.55;Initial Catalog=EY_TCCSFXT;Persist Security Info=True;User ID=sa;Password=";

}private void button1_Click(object sender, EventArgs e)
{
string connectionString = GetConnectionString();

string queryString = "SELECT * FROM BBB";
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = connection.CreateCommand();
command.CommandText = queryString;
try
{
//MessageBox.Show("马上进行连接");
connection.Open();
MessageBox.Show("连接成功");
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
//Console.WriteLine("\t{0}\t{1}", reader[0], reader[1]);
MessageBox.Show(Convert.ToString(reader[0]));
}
reader.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
static private string GetConnectionString()
{
//return "Data Source=192.168.0.55;Initial Catalog=EY_TCCSFXT;User ID=sa;Password=;";
//return "Data Source=192.168.0.55;Database=EY_TCCSFXT;UID=sa;pwd=;";
return "server=EY812B;uid=sa;pwd=;database=EY_TCCSFXT;";
//return "Data Source=192.168.0.55;Initial Catalog=EY_TCCSFXT;Persist Security Info=True;User ID=sa;Password=";

}

//这个是通过wifi,收发信号的,也不好使
private void btnConSvr_Click(object sender, EventArgs e)
{


try
{

btnConSvr.Enabled = false;
btnCloseConSvr.Enabled = true;
Client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPAddress ipAddress = IPAddress.Parse(txtIPAddr.Text);
int port = int.Parse(txtPort.Text);
IPEndPoint remoteEP = new IPEndPoint(ipAddress, port);
Client.BeginConnect(remoteEP, new AsyncCallback(ConnectCallback), Client);

//allDone.Reset();

statusBar1.Text = "操作状态:连接服务器成功!";
//播放正确的声音
PlaySound.Play(OkSoundPath);

Receive();
string c = ipAddress.ToString();
XmlUtils.SaveXmlFile(c);

//receiveDone.WaitOne();
}
catch (Exception ex)
{
ConSvrStatus = false;
btnConSvr.Enabled = true;
btnCloseConSvr.Enabled = true;
statusBar1.Text = "操作状态:连接服务器失败!";
//播放错误的声音
PlaySound.Play(ErrorSoundPath);
return;
}
}
...全文
1258 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
bbboy12008 2015-07-06
  • 打赏
  • 举报
回复
添加dbnetlib.dll试试,我之前也不能连接数据库,但是加上dbnetlib.dll就可以了
痴情的路灯 2015-06-30
  • 打赏
  • 举报
回复
我也想知道!
jinql1207 2014-09-30
  • 打赏
  • 举报
回复
楼主 楼主 再次呼叫楼主啊!
jinql1207 2014-09-30
  • 打赏
  • 举报
回复
楼主 楼主 成功了没啊 我跟你一样 也不行啊 求教啊
Carina_xx 2013-04-22
  • 打赏
  • 举报
回复
static private string GetConnectionString() { //return "Data Source=192.168.0.55;Initial Catalog=EY_TCCSFXT;User ID=sa;Password=;"; //return "Data Source=192.168.0.55;Database=EY_TCCSFXT;UID=sa;pwd=;"; return "server=EY812B;uid=sa;pwd=;database=EY_TCCSFXT;"; //return "Data Source=192.168.0.55;Initial Catalog=EY_TCCSFXT;Persist Security Info=True;User ID=sa;Password="; } 这个连接字符串中Server后面跟的是数据库实例名称,要确认是“EY812B”还是“EY812B\sqlexpress”。 另外WINCE的设备是可以通过WIFI访问PC上的数据库的,但被访问的机器的数据库端口要打开(可让另一台PC连接你的数据库测试),程序开发好以后,现在自己PC上测试,看是否可以通过,然后再拿到另一台PC上测试,确保数据库服务器可以远程连接,然后再拿到终端上测试!
Carina_xx 2013-04-22
  • 打赏
  • 举报
回复
引用 22 楼 kurorolove 的回复:
同求这个问题的答案,我的设备直接连接服务器的sql2000什么问题都没有,但是连接自己机器的sql2008就不行,求高手指点,折磨好几天了
要注意数据库的实例名称,sql2000的话,数据库的实例名一般是机器名或IP地址,而sql2008开发版或测试的话默认实例名是机器名+“\sqlexpress”或IP地址+“\sqlexpress” 同时注意安装完Sql2008以后,要在设置里面把连接方式该一下,要改成“允许本地连接和远程连接”,同时还要启用WebService服务!
kurorolove 2013-02-26
  • 打赏
  • 举报
回复
同求这个问题的答案,我的设备直接连接服务器的sql2000什么问题都没有,但是连接自己机器的sql2008就不行,求高手指点,折磨好几天了
WvW 2013-02-19
  • 打赏
  • 举报
回复
老调重弹! 1. 用sqlCE. + 同步 2. 用SQLITE. (独立于PC, 可以做个远程磁盘映射). 3. 用webservice. 个人觉得, 1 和 3, 遇到WINCE要查询数据时可咋办呀, 不知道怎么实现的.
dengchonglin 2013-02-19
  • 打赏
  • 举报
回复
引用 10 楼 wpamn_c 的回复:
引用 9 楼 super_yan_vip 的回复: mobile是缩水的,功能有限,实现起来应该挺困难的。你可以试一试pc上弄个程序接收终端发过来的sql,处理之后将数据返回给终端。 对啊、现在我就在用这个思路弄、不过PC上的服务器用什么做好?做windows应用程序吗? 客户端与PC的端口设置怎么设呢?
通常我们都是用这个方式来实现的~!
icuso 2013-02-18
  • 打赏
  • 举报
回复
我也想知道 请大侠出刀
虫龙子 2013-02-18
  • 打赏
  • 举报
回复
同求同求~ 哪位大侠支招啊?
cqq_chen 2012-12-26
  • 打赏
  • 举报
回复
引用 16 楼 huanggreat 的回复:
本地搞个 SQL CE 处理数据就在本地,然后同步到服务器(PC)上的SQL SERVER !
效率啊!如何解决的呢???
  • 打赏
  • 举报
回复
本地搞个 SQL CE 处理数据就在本地,然后同步到服务器(PC)上的SQL SERVER !
wpamn_c 2012-11-29
  • 打赏
  • 举报
回复
引用 13 楼 liangxd09 的回复:
现在还用5.0啊 老项目了吧 给你贴一段,项目用的,可以。如果不行 把异常信息贴出来 C# code?1234567891011121314string M_str_sqlcon = @"Data Source=192.168.1.106,1433;Initial Catalog=pubs;User ID=sa;Password=111111"; ……
大哥,你调用的是System.data.sqlclient 还是System.data.sqlclientCe ?
wpamn_c 2012-11-29
  • 打赏
  • 举报
回复
引用 13 楼 liangxd09 的回复:
现在还用5.0啊 老项目了吧 给你贴一段,项目用的,可以。如果不行 把异常信息贴出来 C# code?1234567891011121314string M_str_sqlcon = @"Data Source=192.168.1.106,1433;Initial Catalog=pubs;User ID=sa;Password=111111"; ……
未处理 System.Data.SqlClient.SqlException Message="SqlException" Class=20 LineNumber=0 Number=17 Procedure="ConnectionOpen (Connect())." Server="192.168.0.55,1433" Source=".Net SqlClient Data Provider" State=0 StackTrace: 位于 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, TdsParserState state) 位于 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, TdsParserState state) 位于 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() 位于 System.Data.SqlClient.TdsParser.Connect(String host, SqlInternalConnection connHandler, Int32 timeout) 位于 System.Data.SqlClient.SqlInternalConnection.OpenAndLogin() 位于 System.Data.SqlClient.SqlInternalConnection..ctor(SqlConnection connection, Hashtable connectionOptions) 位于 System.Data.SqlClient.SqlConnection.Open() 位于 RMU_DEMO_WINCE.Main.button1_Click(Object sender, EventArgs e) 位于 System.Windows.Forms.Control.OnClick(EventArgs e) 位于 System.Windows.Forms.Button.OnClick(EventArgs e) 位于 System.Windows.Forms.ButtonBase.WnProc(WM wm, Int32 wParam, Int32 lParam) 位于 System.Windows.Forms.Control._InternalWnProc(WM wm, Int32 wParam, Int32 lParam) 位于 Microsoft.AGL.Forms.EVL.EnterMainLoop(IntPtr hwnMain) 位于 System.Windows.Forms.Application.Run(Form fm) 位于 RMU_DEMO_WINCE.Program.Main() 原代码如下,请帮忙看看

        private void button1_Click(object sender, EventArgs e)
        {
            //string connectionString = GetConnectionString();
            string str1=@"Data Source=192.168.0.55,1433;Initial Catalog=EY_TCCSFXT;User ID=sa;Password=";
            
            string queryString = "SELECT * FROM BBB";
            using (SqlConnection connection = new SqlConnection(str1))
            {
                SqlCommand command = connection.CreateCommand();
                command.CommandText = queryString;
                //try
                //{
                    //MessageBox.Show("马上进行连接");
                    connection.Open();
                    if (connection == null)
                        MessageBox.Show("连接服务器失败,请检查网络!");
                else

                    MessageBox.Show("连接成功");
                    SqlDataReader reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                        //Console.WriteLine("\t{0}\t{1}", reader[0], reader[1]);
                        MessageBox.Show(Convert.ToString(reader[0]));
                    }
                    reader.Close();
                //}
                //catch (Exception ex)
               // {
               //     Console.WriteLine(ex.Message);
               // }
            }
        }

liangxd09 2012-11-27
  • 打赏
  • 举报
回复
现在还用5.0啊 老项目了吧 给你贴一段,项目用的,可以。如果不行 把异常信息贴出来

string M_str_sqlcon = @"Data Source=192.168.1.106,1433;Initial Catalog=pubs;User ID=sa;Password=111111";
            sqlcon = new SqlConnection(M_str_sqlcon);
            sqlcon.Open();

            //查询到数据退出,不执行入库操作
            if (sqlcon == null)
            {
                MessageBox.Show("连接服务器失败,请检查网络!");
            }
            else
            {
                MessageBox.Show("连接服务成功");
            }
woshi_ziyu 2012-11-26
  • 打赏
  • 举报
回复
数据库的访问路径应该是////192.168.0.*//文件夹 可以试试
wpamn_c 2012-11-26
  • 打赏
  • 举报
回复
引用 9 楼 super_yan_vip 的回复:
mobile是缩水的,功能有限,实现起来应该挺困难的。你可以试一试pc上弄个程序接收终端发过来的sql,处理之后将数据返回给终端。
对啊、现在我就在用这个思路弄、不过PC上的服务器用什么做好?做windows应用程序吗? 客户端与PC的端口设置怎么设呢?
oushengfen 2012-11-26
  • 打赏
  • 举报
回复
呵呵,WINCE连接ACCESS都不行,我现在都郁闷
super_yan_vip 2012-11-23
  • 打赏
  • 举报
回复
mobile是缩水的,功能有限,实现起来应该挺困难的。你可以试一试pc上弄个程序接收终端发过来的sql,处理之后将数据返回给终端。
加载更多回复(8)

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧