|
This[^] might help.
50-50-90 rule: Anytime I have a 50-50 chance of getting something right, there's a 90% probability I'll get it wrong...!!
|
|
|
|
|
unfortunately no
it only tells how to update the table in a single action.
I want to save the whole table at once :/
|
|
|
|
|
In the button click, you are again fetching the data from the database. Here, you should be using the dataset you have modified.
Then, you have not mentioned any update command for your adapter so it will not know what and where to update. You should:
1. Use the same dataset that you have used to fetch the data
2. Use same adapter as earlier and set its update command.
Also, read the description of the SQLDataAdapter.Update method from MSDN. It should be having some sample code that will help you understand.
50-50-90 rule: Anytime I have a 50-50 chance of getting something right, there's a 90% probability I'll get it wrong...!!
|
|
|
|
|
oh thank you, I'll have a look =)
|
|
|
|
|
if you wanna see the mistake try to put toggle breakpoint in you methods and debogue step by step F10.
it's easy to debugue
|
|
|
|
|
of course I did that
compiler just acts as if it ignores the update method, It tells me as if "executes" the update, but I cannot see any change on DB
|
|
|
|
|
what is the SqlCeDataAdapter da = new SqlCeDataAdapter("SELECT * FROM Kasa", strCon);
SqlCeCommandBuilder cb = new SqlCeCommandBuilder(da);?????
it's SqlDataAdapter not SqlCeDataAdapter!!!
and SqlCommandBuilder not SqlCeCommandBuilder !!!
|
|
|
|
|
they are SQL Compact Edition commands
|
|
|
|
|
Hi,
How to create playlist and play using windows media player control.
Thankyou
YPKI
|
|
|
|
|
You can do this using classes and interface present under namespace WMPLib .
50-50-90 rule: Anytime I have a 50-50 chance of getting something right, there's a 90% probability I'll get it wrong...!!
|
|
|
|
|
Hi I have a problem as described below :
<pre>
object[] obj1={1,"hello"};
object[] obj2={1,"hello"};
if(obj1.Equals(obj2))
{
return true;
}
else
{
return false;
}
</pre>
According to me, it should return true.
But it is returning false (I know I am wrong).
But why?????
CC26
|
|
|
|
|
Equals method will return true only if both the objects refer to same memory location. Otherwise false. Here obj1 and obj2 are referring to two different memory locations. Hence you are getting return value as false.
50-50-90 rule: Anytime I have a 50-50 chance of getting something right, there's a 90% probability I'll get it wrong...!!
|
|
|
|
|
Thanks for the reply danish.
What if instead of Equal I did if(obj1==obj2)?
CC26
|
|
|
|
|
That would also give the same result.
50-50-90 rule: Anytime I have a 50-50 chance of getting something right, there's a 90% probability I'll get it wrong...!!
|
|
|
|
|
Try this:
<br />
if (obj1.Length != obj2.Length)<br />
{<br />
return false;<br />
}<br />
else<br />
{<br />
return true;<br />
for (int i=0; i < obj1.Length; i++)<br />
{<br />
if (obj1[i] != obj2[i])<br />
{<br />
return false;<br />
break;<br />
}<br />
}<br />
<br />
}
I Love T-SQL
"Don't torture yourself,let the life to do it for you."
If my post helps you kindly save my time by voting my post.
www.aktualiteti.com
|
|
|
|
|
Uh, that would return true for any case where obj1 and obj2 are the same length.
|
|
|
|
|
A little bit wrong, maybe it should look like this:
if (obj1.Length != obj2.Length)
{
return false;
}
else
{
for (int i=0; i < obj1.Length; i++)
{
if (!object.Equals(obj1[i], obj2[i]))
{
return false;
}
}
return true;
}
|
|
|
|
|
Yes,you are right,I just couldn't find a bit free time to modify my answer.
Thanks for correction.
I Love T-SQL
"Don't torture yourself,let the life to do it for you."
If my post helps you kindly save my time by voting my post.
www.aktualiteti.com
|
|
|
|
|
CrazyCoder26 wrote: But it is returning false (I know I am wrong).
Actually you comparing memory location thats why you it return false.
consider the case :-
When you create object, the memory is created in Heap and it's heap memory reference is stored in stack.
So object as such nothing but variable containing address location, so when you compare two object, they bound to differ on memory address, so the answer
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You
|
|
|
|
|
Both == and Equals perform a reference comparison rather than value comparison.
Rewrite your code like this and find out what happens:
object[] obj1={1,"hello"};
object[] obj2=obj1;
|
|
|
|
|
If you are wanting to compare the contents of the arrays, then consider the following code:
public static bool CompareArrays<T>(T[] data1, T[] data2)
{
if ((data1 == null) && (data2 == null))
{
return true;
}
if ((data1 == null) || (data2 == null))
{
return false;
}
if (data1.Length != data2.Length)
{
return false;
}
for (int i = 0; i < data1.Length; i++)
{
if (!data1[i].Equals(data2[i]))
{
return false;
}
}
return true;
}
|
|
|
|
|
|
Better post this in General Database forum.
50-50-90 rule: Anytime I have a 50-50 chance of getting something right, there's a 90% probability I'll get it wrong...!!
|
|
|
|
|
Hi;
I'm trying to create a server whose client-handler gets a tcpclient-object and needs to read data.
My problem is: when using the networkstream.read(byte[], offset, length) method, you cant really tell when the client has stopped sending a block.
I tried using while(length == buffer.length) to check if the buffer has been completely filled, meaning there is still data on the stream, but that does not include the possibility that the client has send exactly the amount of bytes the buffer can hold. Then i tried using the DataAvailable-property of the stream, but how does this work when the clients for example sends two different objects, which both happen to have the same size as my buffer? I would read the first object but there would still be data available on the stream since the second object was send right after the first one.
Could someone please point me in the right direction for receiving a variable amount of data representing a custom class / structure over the internet?
MfG Frank
Edit:
Thank you Paulo Zemek for the hint.
On the client side, just serialize the object on the network-stream:
private void sendAction(GameEvent action)<br />
{<br />
BinaryFormatter formatter;<br />
<br />
formatter = new BinaryFormatter();<br />
formatter.Serialize(this.Server.GetStream(), action);<br />
}
The server side was a little bit tricky, as I first had to create a new binder for the formatter before deserializing:
using System;<br />
using System.Reflection;<br />
using System.Runtime.Serialization;<br />
<br />
public class Binder : SerializationBinder<br />
{<br />
public override Type BindToType(string assemblyName, string typeName)<br />
{<br />
return Type.GetType(typeName + ", " + Assembly.GetExecutingAssembly().FullName);<br />
}<br />
}
The deserialization can then be done quite easy:
private void handleClient(Object tcpclient)<br />
{<br />
GameEvent action;<br />
BinaryFormatter formatter;<br />
TcpClient client;<br />
<br />
formatter = new BinaryFormatter();<br />
formatter.Binder = new Binder();<br />
client = (TcpClient) tcpclient;<br />
<br />
while (client.Connected)<br />
{<br />
try<br />
{<br />
action = (GameEvent) formatter.Deserialize(client.GetStream());<br />
this.newAction(client, action);<br />
}<br />
catch (Exception)<br />
{<br />
<br />
}<br />
}<br />
this.Clients.Remove(client);<br />
}
Thank you again for the great help.
MfG Frank
|
|
|
|
|
A "block" (object that has been serialized) needs to be clearly defined so that when a client receives an array of bytes it is capable of determining where each block in that array begins and ends. For raw bytes streams the start and stop flags should be a byte (or a sequence of bytes) that can't naturally occur inside of the serialized object; that way there's no way to have "accidental" start and stops in the stream.
|
|
|
|