私はデータの復号化に取り組んでおり、データグリッドを使ってデータを表示しています。この問題は、既存のレコードを編集して保存した後に発生します。保存プロセスの後、データは復号化されますが、データ行がクリックされるとデータが突然暗号化されます。ストリームライターはこれに責任がありますか?ストリームライターを閉鎖する必要がありますか?Datagridはファイルを保存した後、復号化されたXMLデータを表示しません...ストリームライターを閉じる必要はありますか?
namespace someProgram
{
public partial class formManage : Form
{
private readonly XmlSerializer xs;
private AddressBook ls;
private int _counter = 0;
private string currentFileName;
public string title { get; set; }
int selectedRow;
private static Random random = new Random();
public formManage()
{
InitializeComponent();
ls = new AddressBook();
xs = new XmlSerializer(typeof(AddressBook));
currentFileName = "";
}
public void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
var saveFileDialog = new SaveFileDialog();
saveFileDialog.RestoreDirectory = true;
saveFileDialog.Title = "Select save location file name";
saveFileDialog.Filter = "XML-File | *.xml";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
StreamWriter writer = new StreamWriter(saveFileDialog.FileName)
SaveFile(writer);
}
}
public void SaveFile(StreamWriter writer)
{
foreach (var item in ls.Contacts)
{
item.Question1 = XMLEncryption.Model.Helpers.Encryptor.Encrypt(item.Question1);
item.Question2 = XMLEncryption.Model.Helpers.Encryptor.Encrypt(item.Question2);
item.Question3 = XMLEncryption.Model.Helpers.Encryptor.Encrypt(item.Question3);
}
xs.Serialize(writer, ls);
MessageBox.Show("File saved... ");
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
selectedRow = e.RowIndex;
if (selectedRow >= 0)
{
buttonUpdate.Enabled = true;
DataGridViewRow row = dataGridView1.Rows[selectedRow];
if (dataGridView1.SelectedRows.Count > 0)
{
string question1 = dataGridView1.SelectedRows[0].Cells[4].Value + string.Empty;
string question2 = dataGridView1.SelectedRows[0].Cells[6].Value + string.Empty;
string question3 = dataGridView1.SelectedRows[0].Cells[8].Value + string.Empty;
textBoxQuestion1.Text = question1;
textBoxQuestion2.Text = question2;
textBoxQuestion3.Text = question3;
}
}
}
}
}
小さいピ暗号化と復号化の方法が正しく機能することを確認するDGVメソッドをテストする。あなたの質問は、特定の答えを出すにはあまりにも広すぎます。 – jdweng
暗号化されたメソッドと復号化されたメソッドは、期待通りに機能します。 datagridviewも期待どおりに動作し、これはプロジェクトの省略バージョンです。ストリームリーダーがこれを担当しているようですが、私はそれを修正する方法がわかりません – tony
xmlをデシリアライズする前に、データを復号化する必要があります。したがって、デシリアライザを呼び出す前に復号化してください。 – jdweng