[DataSet Bug]無法啟用條件約束。一或多個資料列的值違反非 Null、唯一或外部索引鍵條件約束

在使用TableAdapter作Query時發生


1.原因為有些資料欄位Query出來後為null值但是該欄位在dbDataSet的屬性AllowDBNull為False因此把該欄位(或乾脆把全部欄位屬性AllowDBNull改為True

2. maxLength 檢查
直接把MaxLength設成-1,表示無限大

3.使用 DataSet 開發時,請注意該 Table 的 主鍵值,是否為組合鍵。
如為組合鍵,在查詢語句中必須要將主鍵值加在 Select 語句中。

4. 檢查對應table欄位,長度是否變更,EX:5=>10

[Javascript]Gridviewe + checkbox 勾選後將值傳給其他控制項

實在查很久,自己記錄下來

JS端
<script type="text/javascript">
        var ClickNum = 0;//記錄同一checkbox連續點擊次數
        var PreCheckboxID = "";//記錄點擊checkbox的ID
        //listId控制checkbox的範圍
        //SelectRadio是點擊checkbox自己
        function SelectedSingle(listId, SelectRadio) {
            ///判斷是否點同一個checkbox
            if (PreCheckboxID == SelectRadio.id) {
                ClickNumClickNum = ClickNum + 1;
            }
            else {
                PreCheckboxID = SelectRadio.id;
                ClickNum = 0;
            }
            //找到範圍
            var GridViewtableSearchList = document.getElementById(listId);
            //找到控制範圍下所有input
            var objs = GridViewtableSearchList.getElementsByTagName("input");
            var gv = document.getElementById("ctl00_ContentPlaceHolder1_fgvD1");

            //勾選的將fgvD1值傳給主表單IFFGAA40F
            //找到控制範圍下所有checkbox都改成为false
            for (var i = 0; i < objs.length; i++) {
                if (objs[i].type.toLowerCase() == "checkbox")
                {
                    objs[i].checked = false;
                }
            }
            var SelectRadioID = SelectRadio.id;
            if (ClickNum % 2 != 1) {
                document.getElementById(SelectRadioID).checked = true;
            }
            else {
                document.getElementById(SelectRadioID).checked = false;
            }

            for (var i = 0; i < objs.length; i++) {
                if (objs[i].type.toLowerCase() == "checkbox" && objs[i].checked == true)
                {
               
                        document.getElementById("ctl00_ContentPlaceHolder1_ftbVENDORNO").value = gv.rows[i].cells[1].innerHTML;
                        document.getElementById("ctl00_ContentPlaceHolder1_ftbVENDORNM").value = gv.rows[i].cells[4].innerHTML;
                        document.getElementById("ctl00_ContentPlaceHolder1_ftbVENDORAMT").value = gv.rows[i].cells[5].innerHTML;
                        document.getElementById("ctl00_ContentPlaceHolder1_ftbVENDORPAYMODE").value = gv.rows[i].cells[7].innerHTML;
                        document.getElementById("ctl00_ContentPlaceHolder1_ftbVENDORPAYDATE").value = gv.rows[i].cells[8].innerHTML;
                        document.getElementById("ctl00_ContentPlaceHolder1_ftbVENDORPAYDATE").value = gv.rows[i].cells[9].innerHTML;
                }
            }

        }

ASP端
GV

                    <ItemTemplate>
                        <asp:CheckBox ID="cbVENDORCHECK" runat="server" onclick="SelectedSingle('t1_ctl00_ContentPlaceHolder1_fgvD1',this)" Width="95%" />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="VENDORCHECK" HeaderText="建議廠商" Visible="false"></asp:BoundField>
           

[Javascript] 前端使用for迴圈查找GridView

//取得GridView物件
var tbl = document.getElementById("<%= GridView_ID.ClientID %>");
//取得Table物件
//var tbl = document.getElementById("Table_ID");
//for迴圈(GridView和Table的做法一樣)
//i從1開始,因為title不用找
for (i = 1; i < tbl.rows.length; i++)
{
 //取得第一個cell裡的值
 alert(tbl.rows[i].cells[0].innerHTML);
  
 //取得第三個cell裡面第一個TextBox or HiddenField的值
 alert(tbl.rows[i].cells[2].childNodes[0].value);

//上面那行有問題
tbl.rows[i].cells[2].getElementsByTagName("input")[0].value
 //取得第四個cell裡面第一個Label的值
 alert(tbl.rows[i].cells[3].childNodes[0].innerText);
 //取得第五個cell裡面第一個DropDownList的值
 tbl.rows[1].cells[5].children[1].value;

}


[DataSet Bug]無法啟用條件約束。一或多個資料列的值違反非 Null、唯一或外部索引鍵條件約束

在使用TableAdapter作Query時發生 1. 原因為有些資料欄位Query出來後為null值 但是該欄位在dbDataSet的屬性AllowDBNull為False 因此把該欄位(或乾脆把全部欄位屬性AllowDBNull改為True 2. maxLength 檢...