|
VERY VERY THANKS GENTLE MAN...
I GOT THE RESULT...
|
|
|
|
|
hi. im working on a project that requires inserting, deleting values in the database.
i used the datagridview and edit on the values directly on the grid. it worked but when i try to refresh it, the new values are just appended. example, there are only 2rows in the table. when i click the refresh button, 2rows are appended making it 4 rows of the same value. please help.. need it badly..
another thing is that when i change the name for the data table, directly updating on the datagrid is impossible.
|
|
|
|
|
Sounds like there are some problems in your bindings from the datatable to the datagridview. But without seeing your code, it's hard to say more.
|
|
|
|
|
thanx for the reply..
Dim listquery1 As String
If conn.State = ConnectionState.Open Then conn.Close()
Try
conn.Open()
If cboSubj.SelectedItem.ToString = "ICSM310" And cboSec.SelectedItem.ToString = "Z14" Then
listquery1 = "Select *from sampleList;"
Dim mycmd As New MySqlCommand(listquery1, conn)
mycmd.ExecuteNonQuery()
adptr.SelectCommand = mycmd
adptr.Fill(dtable)
DataGridView1.DataSource = dtable
DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells
Else
MsgBox("No list ")
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
conn.Close()
this is the first instance for loading the values in the datagrid...
for the "refresh" command
Dim listquery As String
If conn.State = ConnectionState.Open Then conn.Close()
Try
conn.Open()
Try
listquery = "Select *from sampleList;"
Dim mycmd As New MySqlCommand(listquery, conn)
mycmd.ExecuteNonQuery()
adptr.SelectCommand = mycmd
adptr.Fill(dtable)
statusView.DataSource = dtable
statusView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells
Catch myerror As MySqlException
MsgBox("There was an error reading from the database: " & myerror.Message)
End Try
Catch myerror As MySqlException
MessageBox.Show("Error connecting to the database: " & myerror.Message)
Finally
If conn.State <> ConnectionState.Closed Then conn.Close()
End Try
End Sub
note that statusView is datagridview
for the mysql adapter and datatable, i declare it at the very beginning of the code..
for me to use the command builder command...
|
|
|
|
|
Few observations:
jetgrageda wrote: mycmd.ExecuteNonQuery()
That should be unnecessary.
Before fill, you could call dtable.Clear()
|
|
|
|
|
thanx.. datatable.clear before fill works..
i owe you..thanx so much..
|
|
|
|
|
You're welcome
|
|
|
|
|
this is my connection string...
SqlConnection objCon = new SqlConnection("Data Source=VEESERV4;Initial Catalog=DemoInven;User ID=sa;Password=sa");
i give data source = veeserv4...
instead of this i have to give one word file their...
and the corresponding text in that word file is taken as data source name...
how can i do this...
|
|
|
|
|
kulandaivel_mca2007 wrote: instead of this i have to give one word file their...
and the corresponding text in that word file is taken as data source name...
Why ??
|
|
|
|
|
projects are submitted in exe file format...
so he(client) not able to change datasource name...
if the datasource name taken from word file...
he can change easily..
|
|
|
|
|
|
Try this
SqlConnection objCon = New SqlConnection(ConfigurationManager.ConnectionStrings["VEESERV4"].ConnectionString)
|
|
|
|
|
I'm writing a kind of terminal program that uses the serial port.
I have it on my "main form", which does most of the communication.
My problem is that I need to add another form that also uses the serie port.
Now to my question / problem.
How can I access the opened serial port on my main form?
//Ola
|
|
|
|
|
Hope you are using VB.NET,
If yes then, make the variable of serial port instance to public instead of friend
e.g.
Instead of
Friend WithEvents SerialPort1 As System.IO.Ports.SerialPort
Use
Public WithEvents SerialPort1 As System.IO.Ports.SerialPort
Then you can access it using My.Forms.main-form-name.SerialPort1
Hope I answered your query
Thanks
Ashu
dnpro
"Very bad programmer"
|
|
|
|
|
Thanks for the advice but unfourtanly I'm not using VB.Net.
I'm writing in c#...
|
|
|
|
|
Same principal, but in C# you make the member public or internal rather than protected or private . For a visual control, you can go to it's properties in the designer and set this via the Modifiers property rather than editing the designer generated code file. Also, the second form will have to have a reference to an instance of the main form; so you'll need to also make that link and then you can access the serial port member as a property of an instance of the main form from the second form. I find the easiest way to establish that link is in the second form's constructor by passing in a reference to the main form:
private MainForm mainForm = null;
public SecondForm(MainForm mainForm) <---- constructor
{
...
this.mainForm = mainForm; <---- save reference to main form
...
}
private void UseSerialPort()
{
SerialPort sp = mainForm.SerialPort; <---- access the member on the main form
}
And on the main form you'd have:
private void OpenSecondForm()
{
SecondForm secondForm = new SecondForm(this); <----- pass the instance of the main form here
secondForm.Show();
}
Remember that even though they are Forms, they are also still just classes like everything else and the controls on them are just members of the class. So, if you wanted one class to be able to access a member from another class you'd have to increase the visibility of that member in the other class and have a reference to an instance of it. So, you're just doing the same thing here but the classes happen to be Forms. Also, it's probably better practice to make an actual property on the main form to control access to the serial port member. This way you could also make it with just a get and have a readonly property.
It's important to consider the ownership and access of objects in the structure of your application. Does it make sense for the serial port object to be 'owned' by the Main Form and shared between it and then second form, or does it make more sense to have a separate class that owns it and from which both forms access it? I can't tell you the answer to that, its just something to keep in mind when you are making these kinds of decisions with your application.
Hope this gets you going!
Keep It Simple Stupid! (KISS)
|
|
|
|
|
Thanks, that helped alot.
It works as I wanted it to.
But I did take youre advice and moved the serial port control to a "ordanary class", witch in terms the two forms can use.
Thanks
Ola
|
|
|
|
|
Hello, I'm trying to determine why this encryption won't work for binary files. (specifically docx) I can't use a filestream which is what I've read on a few boards and examples because I'm pulling the files from word and posting to a cloud service. Any Ideas? Am I just going about it wrong?
TIA,
foster
public static byte[] Cipher(byte[] PlainText, string InitialVector, string Salt, int KeySize, string PassPhrase, int PasswordIterations, string HashAlgorithm)
{
byte[] InitialVectorBytes = Encoding.ASCII.GetBytes(InitialVector);
byte[] SaltValueBytes = Encoding.ASCII.GetBytes(Salt);
System.Security.Cryptography.PasswordDeriveBytes DerivedPassword = new System.Security.Cryptography.PasswordDeriveBytes(PassPhrase, SaltValueBytes, HashAlgorithm, PasswordIterations);
byte[] KeyBytes = DerivedPassword.GetBytes(KeySize / 8);
System.Security.Cryptography.RijndaelManaged SymmetricKey = new System.Security.Cryptography.RijndaelManaged();
SymmetricKey.Mode = System.Security.Cryptography.CipherMode.CBC;
System.Security.Cryptography.ICryptoTransform Encryptor = SymmetricKey.CreateEncryptor(KeyBytes, InitialVectorBytes);
System.IO.MemoryStream MemStream = new System.IO.MemoryStream();
System.Security.Cryptography.CryptoStream CryptoStream = new System.Security.Cryptography.CryptoStream(MemStream, Encryptor, System.Security.Cryptography.CryptoStreamMode.Write);
CryptoStream.Write(PlainText, 0, PlainText.Length);
CryptoStream.FlushFinalBlock();
byte[] CipherTextBytes = MemStream.ToArray();
MemStream.Close();
CryptoStream.Close();
return CipherTextBytes;
}
public static byte[] Decipher(byte[] CipherText, string InitialVector, string Salt, int KeySize, string PassPhrase, int PasswordIterations, string HashAlgorithm)
{
byte[] InitialVectorBytes = Encoding.ASCII.GetBytes(InitialVector);
byte[] SaltValueBytes = Encoding.ASCII.GetBytes(Salt);
System.Security.Cryptography.PasswordDeriveBytes DerivedPassword = new System.Security.Cryptography.PasswordDeriveBytes(PassPhrase, SaltValueBytes, HashAlgorithm, PasswordIterations);
byte[] KeyBytes = DerivedPassword.GetBytes(KeySize / 8);
System.Security.Cryptography.RijndaelManaged SymmetricKey = new System.Security.Cryptography.RijndaelManaged();
SymmetricKey.Mode = System.Security.Cryptography.CipherMode.CBC;
System.Security.Cryptography.ICryptoTransform Decryptor = SymmetricKey.CreateDecryptor(KeyBytes, InitialVectorBytes);
System.IO.MemoryStream MemStream = new System.IO.MemoryStream(CipherText);
System.Security.Cryptography.CryptoStream cryptoStream = new System.Security.Cryptography.CryptoStream(MemStream, Decryptor, System.Security.Cryptography.CryptoStreamMode.Read);
byte[] PlainTextBytes = new byte[CipherText.Length];
int ByteCount = cryptoStream.Read(PlainTextBytes, 0, PlainTextBytes.Length);
MemStream.Close();
cryptoStream.Close();
return PlainTextBytes;
}
|
|
|
|
|
The problem may be these two lines in the Decipher function:
byte[] PlainTextBytes = new byte[CipherText.Length];
int ByteCount = cryptoStream.Read(PlainTextBytes, 0, PlainTextBytes.Length);
The Read() will fill PlainTextBytes up through the number of bytes read, the rest will be 0's. I find that very often the encrypted data is longer than the decrypted data. So it's very possible that PlainTextBytes will be created as a byte[] larger than the actual decrypted data. I've also come across code like this on the internet and won't use it myself; it just doesn't look right to me. For what arbitrary reason would you determine that the length of the decrypted data is exactly the same as the length of the encrypted data? Which is essentially what the code is assuming. I prefer to play it safe and not make that assumption.
I find it easier to use the CryptoStream in Write mode for both encrypting and decrypting, I find it helps avoid the aforementioned assumption. If you supply the CryptoStream an empty MemoryStream and the proper ICryptoTransform (encrypt or decrypt), then all you have to do is write the byte[] to the CryptoStream and when you Read from the MemoryStream you will get the transformed data. Doing that in the Decipher function would look like this:
MemoryStream memStream = new MemoryStream();
CryptoStream cryptoStream = new CryptoStream(memStream, Decryptor, CryptoStreamMode.Write);
cryptoStream.Write(CipherText, 0, CipherText.Length);
PlainTextBytes = memStream.ToArray();
This is pretty much how you did the encryption in the Cipher function. The cool thing about this is that the actions for encrypting and decrypted are exactly the same, the only thing different is the data and the ICryptoTransform used. So, you can put this functionality in a single function in which you only need to pass the proper ICryptoTransform and the proper byte[] . When you are encrypting pass in the unencrypted data as a byte[] and the Encryptor ICryptoTransform and when decrypting pass in the encrypted data as a byte[] and the Decryptor ICryptoTransform , and you'd have this (which is almost the same as code I've used):
private byte[] PerformTransform(byte[] data, ICryptoTransform tran)
{
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, tran, CryptoStreamMode.Write);
cs.Write(data, 0, data.Length);
cs.Close();
return ms.ToArray();
}
One last note, save yourself a lot of unnecessary text and put in the using statements for the System.IO and System.Security.Cryptography namespaces.
Keep It Simple Stupid! (KISS)
|
|
|
|
|
Timed GTalk Status Updater
Hi,
I want to make a program in C# (rather Win-Service), that would real text from XML file, and update GoogleTalk, Status message with it.
I need API's, interoperability guidence on this.
What can u do for me?
....
Ravie Busie
Coding is my birth-right and bugs are part of feature my code has!
|
|
|
|
|
RaviBusie wrote: What can u do for me?
Direct you to Google to look for a GoogleTalk API. Wow, look what happened[^] when I typed "googletalk api" into Googles search bar.
|
|
|
|
|
I can pray for you
I are troll
|
|
|
|
|
|
...
Ravie Busie
Coding is my birth-right and bugs are part of feature my code has!
|
|
|
|
|
I'm experiencing a deserialisation problem which pares down to the following snippet:
[Serializable]
public class SomeClass
{
private SomeHandler<int> m_receiver;
public SomeClass()
{
m_receiver = Enter<int>;
}
protected virtual void Enter()
{ }
protected virtual void Enter<T>(T data)
{ }
}
public delegate void SomeHandler<T>(T data);
class Program
{
static void Main(string[] args)
{
SomeClass x1 = new SomeClass();
BinaryFormatter formatter = new BinaryFormatter();
using (MemoryStream ms = new MemoryStream()) {
formatter.Serialize(ms, x1);
ms.Seek(0, SeekOrigin.Begin);
SomeClass x2 = (SomeClass)formatter.Deserialize(ms);
}
}
}
When I run this I get an ArgumentNullException way down in the stack, as follows:
at System.Reflection.RuntimeMethodInfo.MakeGenericMethod(Type[] methodInstantiation)
at System.Reflection.MemberInfoSerializationHolder.GetRealObject(StreamingContext context)
at System.Runtime.Serialization.ObjectManager.ResolveObjectReference(ObjectHolder holder)
at System.Runtime.Serialization.ObjectManager.DoFixups()
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream)
...
If I remove the non-generic Enter() method from SomeClass then it works as expected. So what's wrong?
Thanks,
Chris.
modified on Wednesday, January 21, 2009 5:04 AM
|
|
|
|
|