none
將Base64String轉成字串 在datagridview RRS feed

  • 問題

  •         private string Decryption(string value)
            {
                string result = "";

                try
                {
                    var base64EncodedBytes = Convert.FromBase64String(value); 
                    result = Encoding.UTF8.GetString(base64EncodedBytes); 
                }
                catch (ArgumentNullException)
                {}

                return result;
            }

            private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
            {
                var record = from records in db.Inventory
                             select records.產品;
                foreach (string product in record)
                {
                   Decryption(product);
                }
            }

    想請問如何將已轉好的字串Decryption(product);傳回dgv裡?

    2016年4月2日 上午 07:13

解答

  • 你原來的  dgv 資料總是另外讀取來的吧? 所以

    (1) 建立一個資料結構包含原有的資料欄位 加上 新的資料欄位(就是你要轉的 UTF8 結果)

    (2) 資料讀完先做轉換

    (3) 再把資料 Binding 到 dataGridView 上

    這樣不就得了. 把資料歸資料, 畫面歸畫面, 不要老是把該給資料處理的事搞給畫面做, 等你程式寫大一點, 這種作法會玩死自己.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2016年4月2日 上午 08:22
    版主

所有回覆

  • 沒那麼複雜, 直接指派 dtatGridView 的資料來源就行了

    namespace AsyncTaskSample
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
    
    
            private void button1_Click(object sender, EventArgs e)
            {
    
                BindingSource bindingsource = new BindingSource();
                bindingsource.DataSource = GetData();
                dataGridView1.DataSource = bindingsource; 
            }
    
            private BindingList<MyData> GetData()
            {
                BindingList<MyData> result = new BindingList<MyData>();
                result.Add(new MyData() { ProductName = "ABC" });
                result.Add(new MyData() { ProductName = "DEF" });
                return result;
            }
    
    
        }
    
        public class MyData
        {
            public string ProductName
            { get; set; }
        }
    }
    


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2016年4月2日 上午 07:39
    版主
  • 我是想將已有原資料的dgv,某欄位的值從Base64String轉成UTF-8

    2016年4月2日 上午 08:09
  • 你原來的  dgv 資料總是另外讀取來的吧? 所以

    (1) 建立一個資料結構包含原有的資料欄位 加上 新的資料欄位(就是你要轉的 UTF8 結果)

    (2) 資料讀完先做轉換

    (3) 再把資料 Binding 到 dataGridView 上

    這樣不就得了. 把資料歸資料, 畫面歸畫面, 不要老是把該給資料處理的事搞給畫面做, 等你程式寫大一點, 這種作法會玩死自己.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2016年4月2日 上午 08:22
    版主
  • 抱歉 .....

    可是不能改變資料庫,想請問是否就只能改變畫面顯示

    2016年4月2日 上午 08:41
  • 已解決,感謝。
    2016年4月2日 上午 09:34
  • 抱歉 .....

    可是不能改變資料庫,想請問是否就只能改變畫面顯示

    我沒有叫你改變資料庫,  我的意思是在 Model 和 View 中間墊一層 View Model

    也就是 SQL DB --(Data Access Layer)--> Model ---> View Model ---> View


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2016年4月2日 上午 10:22
    版主