情況:
掛在他專案下的應用程式、都有連資料庫、 跟其他專案的應用程式設定的連現字串name一樣
就會出現這種問題
解法
1.把連線字串名稱改掉 2.<remove name="ConnectionString" />參考來源
http://zhidao.baidu.com/question/156580753.html
1.把連線字串名稱改掉 2.<remove name="ConnectionString" />參考來源
.Net Framework Install-Package Autofac.Mvc5 -Version 4.0.2 Install-Package bootstrap -Version 3.3.7 Install-Package EntityFramework -Version 6.2.0 Install-Package EntityFramework.zh-Hant -Version 6.2.0 Install-Package Fancybox -Version 2.1.5 Install-Package jQuery -Version 1.12.4 Install-Package Microsoft.jQuery.Unobtrusive.Ajax -Version 3.2.5 Install-Package Newtonsoft.Json -Version 7.0.1 Install-Package NPOI -Version 2.4.0 Install-Package PagedList.Mvc -Version 4.5.0 Install-Package System.Linq.Dynamic -Version 1.0.7 Install-Package Microsoft.AspNet.Mvc -Version 5.2.7
.Net Core(2020-11-13) Model Install-Package FluentValidation.AspNetCore Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 3.1.21 Install-Package Microsoft.EntityFrameworkCore.SqlServer.Design Install-Package Microsoft.EntityFrameworkCore.Tools -Version 3.1.21 Service Install-Package Dapper Install-Package Microsoft.AspNetCore.Mvc.Core Install-Package NPOI -Version 2.5.2 Web Install-Package X.PagedList.Mvc.Corelibman.json(2020-11-13)
{
"version": "1.0",
"defaultProvider": "cdnjs",
"libraries": [
{
"provider": "unpkg",
"library": "@microsoft/signalr@3.1.4",
"destination": "wwwroot/microsoft/signalr/"
},
{
"library": "fancybox@3.5.7",
"destination": "wwwroot/lib/fancybox/"
},
{
"library": "jquery@3.5.1",
"destination": "wwwroot/lib/jquery/"
},
{
"provider": "unpkg",
"library": "bootstrap@4.5.3",
"destination": "wwwroot/lib/bootstrap/"
},
{
"library": "bootstrap-datepicker@1.9.0",
"destination": "wwwroot/lib/bootstrap-datepicker/"
}
]
}
@using (Ajax.BeginForm("action", "controller", null, new AjaxOptions { HttpMethod = "POST", OnSuccess = "OnSuccess", OnBegin = "OnBegin" }))
{
}
寫兩個function OnBegin OnSuccess
var btn = $('#MultipleCreate');
function OnBegin() {
if (!confirm('確定批次新增嗎??')) return false;
btn.button('loading');
}
function OnSuccess(response) {
btn.button('reset');
alert('完成');
}
select
IDENT_SEED('table_name') as 起始值,
IDENT_INCR('table_name') as 每次增值,
IDENT_CURRENT('table_name') as 目前最大值
重置indentity
dbcc checkident('table_name', RESEED, 100)
Insert後取得indentity
Select @@Identity參考來源
select a.* from table as a Where datediff(dy, a.xxx, '2015-07-10') = 0
public int id { get; set; }
public string name { get; set; }
2.將class繼承INotifyPropertyChanged
using System.ComponentModel;
public class member : INotifyPropertyChanged
3.實作INotifyPropertyChanged
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(String info)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(info));
}
}
4.修改class
public int id { get; set; }
private string _name;
public string name
{
get { return this._name; }
set
{
if (value != this._name)
{
this._name = value;
NotifyPropertyChanged("Name");
}
}
}
5.新增一個list(抓假資料如果是資料庫也可直接改)
public List6.抓出資料GetMember(int pCount) { List lst = new List (); string name = "test"; for (int i = 0; i < pCount; i++) { member create = new member() { id = i, name = name + i.ToString() }; lst.Add(create); } return lst; }
member script = new member(); List7.寫另一個頁面去修改namelst = script.GetMember(10); dataGridView1.DataSource = lst;
<form action="xxx.php" method="post" onsubmit="return false;"> </form>參考來源
public xxxEntities()
: base("name=xxxEntities")
{
}
改成如下後就能自帶Connection string
public xxxEntities(string ConnectionString)
: base(ConnectionString)
{
}
但上篇所提到的Model如果更新就會被改掉
public <#=code.Escape(container)#>()
: base("name=<#=container.Name#>")
{
改成
public <#=code.Escape(container)#>(string ConnectionString)
: base(ConnectionString)
{
使用方式如下
//自行加密
private static string conn = string.Format("metadata=res://*/Models.Model1.csdl|res://*/Models.Model1.ssdl|res://*/Models.Model1.msl;provider=System.Data.SqlClient;provider connection string=\";data source={0};initial catalog={1};user id={2};password={3};MultipleActiveResultSets=True;App=EntityFramework\";", "datasource", "catalog", "id", "pw");
private xxxEntities db = new xxxEntities(conn);
要注意的是以下符號改為雙引號,這樣進行字串加密
& q u o t參考來源
@section scripts {
<script>
$(function () {
$.ajax({
url: '@Url.Action("TestGet", "Home")',
type: 'post',
data: { q: '傳到後端再顯示的!!' },
async: false,
success: function (data) {
alert(data);
}
});
});
</script>
}
[HttpPost]
public ActionResult TestGet(string q)
{
return Content(q);
}
<link href="/css/bootstrap-multiselect.css" rel="stylesheet" type="text/css" /> <script src="/js/bootstrap-multiselect.js" type="text/javascript"></script>Html部份
<select id="selecttest" multiple="multiple"> 略... </select>js部份
$('#selecttest').multiselect({
includeSelectAllOption: true,
selectAllText: '全選',
nonSelectedText :'未選擇',
allSelectedText : '已全選'
});
還有許多屬性可以使用
<table>
<thead>
<tr class="active">
<th>
<label>
<input type="checkbox" class="selectAll" />全選</label>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<input type="checkbox" />
</td>
<tr>
<tr>
<td>
<input type="checkbox" />
</td>
<tr>
<tr>
<td>
<input type="checkbox" />
</td>
<tr>
<tr>
<td>
<input type="checkbox" />
</td>
<tr>
</tbody>
</table>
計畫是抓到這個checkbox的父table再向下抓
$('.selectAll').change(function () {
$(this).closest('table').find('tbody tr td input[type="checkbox"]').prop('checked', $(this).prop('checked'));
});
這樣只要checkbox class指定好不管多少table都能共用
$(function () {
$('.tbspan').rowspan(1);//第幾個欄位做合併 0開始
$('.tbspan').rowspan(4, 0); //(合並那一個,那一個欄位一樣)
$('.tbspan').colspan(3);//第幾列做合併 0開始
});
參考來源
void ReadOnlyControl(Control control)
{
foreach (var item in control.Controls)
{
if (item is System.Web.UI.WebControls.TextBox)
{
TextBox ctrl = (TextBox)item;
ctrl.ReadOnly = true;
}
else if (item is System.Web.UI.WebControls.DropDownList)
{
DropDownList ctrl = (DropDownList)item;
ctrl.Enabled = false;
}
else if (item is System.Web.UI.WebControls.CheckBox)
{
CheckBox ctrl = (CheckBox)item;
ctrl.Enabled = false;
}
}
}
變回來
void WriteControl(Control control)
{
foreach (var item in control.Controls)
{
if (item is System.Web.UI.WebControls.TextBox)
{
TextBox ctrl = (TextBox)item;
ctrl.ReadOnly = false;
}
else if (item is System.Web.UI.WebControls.DropDownList)
{
DropDownList ctrl = (DropDownList)item;
ctrl.Enabled = true;
}
else if (item is System.Web.UI.WebControls.CheckBox)
{
CheckBox ctrl = (CheckBox)item;
ctrl.Enabled = true;
}
}
}
使用方式
ReadOnlyControl(form1); WriteControl(form1);
$('.fancybox').fancybox({
closeBtn: false, // 是否顯示關閉按紐
helpers: {
// 防點擊背景時關閉
overlay: { closeClick: false }
},
keys: {
// 防點擊ESC時關閉
close: null
}
});
參考來源
3.新增一個Class來紀錄使用者資訊
public class UserData
{
public string id { get; set; }
public string ip { get; set; }
public string url { get; set; }
public string browser { get; set; }
}
4.撰寫Server後端的Class
public class MyHub : Hub
{
//目前所有連線的list
static List UserData = new List(0);
public void userConnected(string pUrl, string pBrowser)
{
//使用者連線 加入清單
var query = from u in UserData
where u.id == Context.ConnectionId
select u;
if (query.Count() == 0)
{ //這段自由發揮
UserData.Add(new UserData { id = Context.ConnectionId, ip = PublicClass.GetIpAddress(), url = pUrl, browser = pBrowser });
}
Clients.All.getList(UserData);//呼叫前端function
}
public override Task OnDisconnected()
{
//離開時清除清單
Clients.All.removeList(Context.ConnectionId);
var item = UserData.FirstOrDefault(x => x.id == Context.ConnectionId);
if (item != null)
{
UserData.Remove(item);//刪除
Clients.All.onUserDisconnected(item.id); //呼叫前端function
}
return base.OnDisconnected();
}
}
5.前端的Html及加入參考
<div>
<ul id="lst"></ul>
</div>
<script src="/Scripts/jquery-1.11.2.min.js"></script>
<script src="/Scripts/jquery.signalR-2.0.1.js"></script>
<script src="/signalr/hubs"></script>
6.撰寫JS,比較需要了解的對應Server的呼叫及Server如何呼叫Client
<script type="text/javascript">
$(function () {
//建立與Server端的Hub的物件,注意Hub的開頭字母一定要為小寫
var onlineHub = $.connection.myHub;
//將連線打開
$.connection.hub.start().done(function () {
onlineHub.server.userConnected(location.href, navigator.userAgent);//呼叫server
});
//讓server呼叫(抓取資料)
onlineHub.client.getList = function (userList) {
//內容自由發揮
var HasObj = $('#lst');
if (!HasObj.length)
return;
$("#lst").html("");
var li = "";
$.each(userList, function (index, data) {
li += "<li id='" + data.id + "'>ip:" + data.ip + "-Url:" + data.url + "-Brower:" + data.browser + "</li>";
});
$("#lst").html(li);
}
//讓server呼叫(移除離開人員)
onlineHub.client.onUserDisconnected = function (id) {
//內容自由發揮
$('#' + id).remove();
}
});
</script>
7.如果為2.0版本需新增一個Owin啟動類別並加入
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
如果為1.0在Global.asax加入
protected void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.MapHubs();
}
了解運作方式後其實可以做其他許多功能,以上如有錯誤請告知謝謝!!

<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:xlargeScreens="true"
android:resizeable="true"
android:anyDensity="true"
/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.RECORD_VIDEO"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
6.MainActivity裡修改
package com.example.test;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import org.apache.cordova.*;//import
public class MainActivity extends DroidGap {//改public DroidGap
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
super.loadUrl("file:///android_asset/www/index.html");//加入
}
}
至於為何要使用2.9.0,因為3.0以上改為node.js來安裝,2.9.1裡面無jar檔試了一下怎麼裝都起不來