|
try
MessageBox.Show(string.Join(Environment.NewLine,test.ToArray()));
|
|
|
|
|
Hi,
I develop a GMAO csharp smart device application.I try now to connect to my remote database.mdf using TCP/IP protocol.I created a combobox where i want to extract informations from my table using this select statement:
"SELECT DISTINCT NObt FROM 4BT "; .For my IPadreess of my computer,I use the ipconfig/all command and I take the
IPv4 Address. . . . . . . . . . . : 192.168.1.4(Preferred)
My hole code is like this:
using System;
using System.Linq;
using System.Data.SqlServerCe;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace ModeDifféré
{
public partial class Form6 : Form
{
public Form6()
{
InitializeComponent();
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void Form6_Load(object sender, EventArgs e)
{
string sConnection = "Data Source=192.168.1.4,1433;Initial Catalog=GMAO;User ID=sa;Password=sa;";
string sSQL = "SELECT DISTINCT NObt FROM 4BT";
SqlCeCommand comm = new SqlCeCommand(sSQL, new SqlCeConnection(sConnection));
SqlCeDataReader dr = null;
try
{
comm.Connection.Open();
dr = comm.ExecuteReader();
while (dr.Read())
comboBox1.Items.Add(dr[0]);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
dr.Close();
comm.Connection.Close();
}
}
}
When running,this error appears:
Unknown connection option in connection string: initial catalog.
As an information,I follow the steps of this link:http://netcf2.blogspot.com/2005/12/accessing-sql-server-express-from.html[^]
What is the problem???
Thank u for all u suggestion
Regards
Marwen
|
|
|
|
|
You're trying to access a Sql Express-database using the classes that are designed for SqlCe. Those are two different database-systems; Sql Express is server-based, and you connect using a SqlConnection . SqlCe is file-based, that's what's on your mobile device.
Change the data-provider and it should work.
I are Troll
|
|
|
|
|
Hi Eddy,
sorry but i don't understand what u mean and how can i change the data-provide.I am not so good at english computer science vocablary.
Thanks
|
|
|
|
|
Tunisien86 wrote: I am not so good at english informatic vocablary.
Your English is fine, but there's a mixup in classes that act and look similar.
The one on the mobile device has an .sdf-extension and is a file-based datastore. You've already worked with this type of database. Typically, you make a SqlCeConnection [^] and execute a SqlCeCommand [^].
The database on Sql Server has a .mdf extension, and is a server-based datastore. It works in a similar fashion, you open a SqlConnection [^] and execute your SqlCommand [^]
In short, when you talk to .sdf you use a SqlCeConnection, when you talk to an .mdf you use a SqlConnection. The long story can be found on MSDN[^].
I are Troll
|
|
|
|
|
Hi Eddy,
Thanks a lot for u collaboration .I understand u meaning.I make changement but still not working.
My new code is like that:
using System;
using System.Linq;
using System.Data.SqlServerCe;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace ModeDifféré
{
public partial class Form6 : Form
{
public Form6()
{
InitializeComponent();
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void Form6_Load(object sender, EventArgs e)
{
string sConnection = "Data Source=192.168.1.4,1433;Initial Catalog=GMAO;User ID=sa;Password=sa;";
string sSQL = "SELECT DISTINCT * FROM D°_urgence";
SqlCommand comm = new SqlCommand(sSQL, new SqlConnection(sConnection));
SqlDataReader dr = null;
try
{
comm.Connection.Open();
dr = comm.ExecuteReader();
while (dr.Read())
comboBox1.Items.Add(dr[0]);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
dr.Close();
comm.Connection.Close();
}
}
}
In fact,my combobox should contain the result of my select statement,but when running,the system is show an sqlexception and nothing is added to my combobox.
Is the IPadress the problem?the ipconfig command returns to me this:
C:\Users\Admin>ipconfig /all
Windows IP Configuration
Host Name . . . . . . . . . . . . : Admin-PC
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Hybrid
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
Wireless LAN adapter Wireless Network Connection 2:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Microsoft Virtual WiFi Miniport Adapter
Physical Address. . . . . . . . . : 06-1B-9E-4A-A0-8C
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Wireless LAN adapter Wireless Network Connection:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Atheros AR5007EG Wireless Network Adapter
Physical Address. . . . . . . . . : 00-1B-9E-4A-A0-8C
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::cc28:8ea3:82ea:4c4f%13(Preferred)
IPv4 Address. . . . . . . . . . . : 192.168.1.4(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Lease Obtained. . . . . . . . . . : mercredi 5 mai 2010 10:08:26
Lease Expires . . . . . . . . . . : jeudi 6 mai 2010 10:08:25
Default Gateway . . . . . . . . . : 192.168.1.1
DHCP Server . . . . . . . . . . . : 192.168.1.1
DHCPv6 IAID . . . . . . . . . . . : 234888094
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-13-55-22-65-00-1A-92-FC-E6-7E
DNS Servers . . . . . . . . . . . : 192.168.1.1
192.168.1.1
NetBIOS over Tcpip. . . . . . . . : Enabled
Ethernet adapter Local Area Connection:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . : home
Description . . . . . . . . . . . : Realtek RTL8139/810x Family Fast Ethernet
NIC
Physical Address. . . . . . . . . : 00-1A-92-FC-E6-7E
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Tunnel adapter isatap.home:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Microsoft ISATAP Adapter
Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Tunnel adapter Local Area Connection* 11:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Microsoft Teredo Tunneling Adapter
Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
IPv6 Address. . . . . . . . . . . : 2001:0:4137:9e74:454:bc2:3f57:fefb(Prefer
red)
Link-local IPv6 Address . . . . . : fe80::454:bc2:3f57:fefb%11(Preferred)
Default Gateway . . . . . . . . . : ::
NetBIOS over Tcpip. . . . . . . . : Disabled
Tunnel adapter isatap.{9CD32A2C-C6BD-42FC-9F45-933E12729451}:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Microsoft ISATAP Adapter #2
Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Tunnel adapter isatap.{13CC6962-1531-4DD0-BC0C-47DEA185DF81}:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Microsoft ISATAP Adapter #3
Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
.
I took the
IPv4 Address. . . . . . . . . . . : 192.168.1.4(Preferred)
Or should I take the physical @ as the @ of my computer?
I really i don't understand the problem.
Thanks
|
|
|
|
|
Hi Calla,
Eddy suggests that i change sqlcecommand to sqlcommand because I use .mdf database.
Or i don't know maybe i am not understanding what he said
Thanks
|
|
|
|
|
You'll have to check
1) Do you have network connectivity on your emulator: start Internet explorer on the emulator, and try to access a well known website (www.codeproject.com).
2) Is your firewall open on port 1433?
Also, which exception are you getting now? we need the full text of the exception, which you should now have, if you followed Luc Pattyns' code.
|
|
|
|
|
Hi Micheal,
As a reponse of u suggestions:
1)my emulator doesn't have network connectivity.
2)how can i know that my firewall is open on port 1433?
3)the sqlexception I got :http://yfrog.com/iycaptureawj[^]
Thanks
|
|
|
|
|
Tunisien86 wrote: the sqlexception I got :http://yfrog.com/iycaptureawj[^]
Yeah, that one we've already seen. try to get the full exception ON THE PC (see my other reply about this)
Tunisien86 wrote: my emulator doesn't have network connectivity.
Well, there you have it. No point in testing the others until you can establish that.
1) Is your emulator cradled?
2) do you see the connection in Mobile device center or in ActiveSync?
|
|
|
|
|
|
You should cradle it. cradling will give the emulator an IP address.
In mobile device center, be sure to select 'DMA' in connection settings. Then do the internet explorer test again.
|
|
|
|
|
Hi Michel,
Sorry for yesterday,I couldn't continue with u because the time work finished and I have no Internet connexion in home.When trying to cradle my emulator,the first step I found is to enable TCP/IP connexion in the emulator.This required to install Virtual PC 2007but got this error while installing:
Error 1335. The cabinet file 'product.cab' required for this installation is
corrupt and cannot be used..."
I tried redownloading VPC and even saving to different disk and still get
same error.
Any ideas?
thanks
|
|
|
|
|
Hi Freinds,
Finally I depass the problem of the connexion to server by the DB File's attachment . No exception apperas.Still now the problem of the filling of my combobox .I try with sqldataset instead of the sqlreader like this:
string sConnection = "Data Source=127.0.0.1,1433;Persist Security Info=True;Initial Catalog=GMAO;User ID=sa;Password=sa";
string sSQL = "SELECT com FROM energie; ";
SqlConnection conn = new SqlConnection(sConnection);
SqlCommand comm = new SqlCommand(sSQL, conn);
DataSet ds = new DataSet();
SqlCeDataAdapter da = new SqlCeDataAdapter();
SqlDataReader dr = null;
try
{
comm.Connection.Open();
da.Fill(ds, "SQL Temp Table");
foreach(DataRow d in ds.Tables[0].Rows)
comboBox1.Items.Add(d.ToString());
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message);
return;
}
dr.Close();
comm.Connection.Close();
}
but nothing is added to my combobox.
Thanks in all cases for u collaboration
I am really sooooooooooo happy
|
|
|
|
|
Tunisien86 wrote: In fact,my combobox should contain the result of my select statement,but when running,the system is show an sqlexception and nothing is added to my combobox.
It's easier to find a problem if you include the message of the exception. In this case it's probably caused by a common error - your tablenames contain illegal characters. You can "fix" it with brackets;
string sSQL = "SELECT DISTINCT * FROM [D°_urgence]";
Also note that the change in code assumes that your select-statement is run against an SQL Server instance, one that has access to the *.mdf-file that you want to read from. If this data is stored locally, in an *.sdf file, then you'd indeed need the SqlCe -classes.
Tunisien86 wrote: Or should I take the physical @ as the @ of my computer?
Ideally, you take the computers' name and the instance name and put it in a configurationfile. Something like "Admin-PC/MySql2005Instance". There might be lots of IP-adresses on a computer, but it usually only has a single name that identifies it in the network. It also communicates easier, imagine yelling "Reboot Skynet and Idefix" in contract to "Reboot One-Nine-Two Doht One-Six-Eight Doht One Doht Zero.. - No Four, I meant Four!"
I are Troll
|
|
|
|
|
Hi Eddy,
I wanna clarify something.The database I would connect to is the database of the society I work in.As u know,maintenance societies try try to make easy its work:a technician uses the PDA to connect to the database of the society and finishs his work.The "big" database is a .mdf file.Something was not clear how can i connect to .mdf databse while i should connect to .sdf fine because I develop a mobile application??Is that possible
Also about the ip@,is it true what i did?I don't understand u statement really
is it a problem of Firewall????
Thanks
|
|
|
|
|
hI Eddy,
when trying to cradle my emulator,I can't install the virtual PC 2007 and getting this error:
Error 1335. The cabinet file 'product.cab' required for this installation is
corrupt and cannot be used..."
What can i do?
|
|
|
|
|
Goodmorning
Redownload Virtual PC and reinstall it, looks like your setup is corrupt. How is the Sql-query going?
I are Troll
|
|
|
|
|
Hi,
I redowload VPC2007 and install it but still the same error.The sql query goes fine.Tha problem is now in the cradling of the emulator.
Thanks
|
|
|
|
|
Hi
Thanks I cradled my emulator.The Emulator must be running to be able to cradle it.
When should I uncradle my emulator???
When trying to install windows mobile device center,it failed.Should i connect a real device to be able to install this tool???
How can I get the IP number that is used for my device and PC for this TCP/IP connection??????
Thanks a lot for u clarification
Marwen
Smile
|
|
|
|
|
Tunisien86 wrote: When should I uncradle my emulator???
That's out of my league; cradling the iPaq was a matter of inserting the USB-cable, never tried it on the emulator.
Tunisien86 wrote: When trying to install windows mobile device center,it failed.Should i connect a real device to be able to install this tool???
That might be possible; some applications require the real thing and won't work with the emulator.
Tunisien86 wrote: How can I get the IP number that is used for my device and PC for this TCP/IP connection??????
The IP-adress of the mobile device can be retrieved using this[^] snippet (scroll to the end), the IP-adress of Sql Server should be already known.
I are Troll
|
|
|
|
|
don't use
catch (Exception ex) {
MessageBox.Show(ex.Message);
}
as it may hide a lot of useful information.
Instead use
catch (Exception ex) {
MessageBox.Show(ex.ToString());
}
at least as long as it is not working properly all the time.
|
|
|
|
|
Hi Luc,
I made the changement u ask but the exception still.I wanna clarify that I wanna connect to my database .mdf and not .sdf.Something still not clear in my mind why should i use .mdf database or I work a mobile application so .sdf database required??,
Thanks for u contribution
|
|
|
|
|
Tunisien86 wrote: but the exception still
what did you expect? it does not make the exception go away, it makes you get more information from it, so you have a better chance at understanding what goes wrong and where.
|
|
|
|
|
Is the remote instance really 192.168.1.4 or is it 192.168.1.4\SQLExpress? By default SQLExpress databases run under a SQLExpress instance, and this is what you need to connect to.
"WPF has many lovers. It's a veritable porn star!" - Josh Smith As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
My blog | My articles | MoXAML PowerToys | Onyx
|
|
|
|