نحوه ی نوشتن یک StoreProcedure با شرط های مختلف مانند دستورات Ado
EXECUTE sp_executesql
N'select * from htreatment.TbLimitGroup
WHERE statuscode = @level',
N'@level tinyint',
@level = 1;
کاهی اوقات در sql server هنگام نوشتن sp لازم است که برخی شرط ها حذف شود و اصلا در sp نادیده گرفته شود با استفاده از روش بالا این کار به سادگی قابل انجام می باشد.
نحوه پیدا کردن فیلد یا عباراتی در کل دیتابیس در Sql Server
ما در این مثال قصد داریم که فیلدی از یک جدول در دیتابیس را در کل پایگاه داده sql server جستجو کنیم و ببینیم در چه جداولی از sql فیلد مورد نظر ما وجود دارد. برای این کار از دستورات زیر استفاده می کنیم.
-- Search in All Objects
SELECT OBJECT_NAME(OBJECT_ID),
definition
FROM sys.sql_modules
WHERE definition LIKE '%' + 'BusinessEntityID' + '%'
GO
در دستورات بالا باعث می شود که در تمامی آبجکت های اسکویل سرور را اعم از sp یا view یا table به دنبال فیلد مورد نظر من بگردد و در هر جا که استفاده شده باشد پیدا می کند. و نمایش می دهد.
نحوه ی مقایسه دو جدول در Sql Server
مثال ما در دیتابیس دو جدول مثل هم از نظر ستون و دیتایی داریم که می خواهیم آنها را باهم مقایسه کنیم و داده هایی که با هم اختلاف دارند را به ما نمایش دهد. برای این کار از دستورات زیر استفاده می کنیم.
SELECT * FROM TableA
UNION
SELECT * FROM TableB
EXCEPT
SELECT * FROM TableA
INTERSECT
SELECT * FROM TableB;
INTERSECT این دستور باعث می شود که تمامی اختلاف های موجود دو جدول باهم نمایش داده شوند تا اختلاف های موجود پیدا شوند.
در واقع با استفاده از این دستورات باعث می شود که لیست دیتاهایی که باهم اختلاف دارند پیدا شود و کنار هم قرار داده شوند تا اختلاف دو دیتا را مشاهده کنیم.
نحوه ساخت جدول Table داینامیک در #C
ابتدا در بخش Html کد زیر را قرار می دهیم/
<asp:PlaceHolder ID="Place" runat="server"></asp:PlaceHolder>
سپس در بخش کد نویسی سی شارپ کد زیر را قرار می دهیم
HtmlTable table = new HtmlTable();
table.Border = 1;
table.CellPadding = 3;
table.Width = "100%";
// Populate the HtmlTable control by adding rows to it.
for (int rowcount = 0; rowcount < objobjCookiefieldList.Count(); rowcount++)
{
// Create a new HtmlTableRow control.
HtmlTableRow row = new HtmlTableRow();
// Add cells to the HtmlTableRow control.
for (int cellcount = 0; cellcount < 2; cellcount++)
{
// Define a new HtmlTableCell control.
HtmlTableCell cell;
// Create table header cells for the first row.
if (rowcount <= 0)
{
cell = new HtmlTableCell("th");
}
else
{
cell = new HtmlTableCell();
}
// Create the text for the cell.
if (cellcount==0)
{
cell.Controls.Add(new LiteralControl(objobjCookiefieldList[rowcount].CookieFieldName));
}
else
{
cell.Controls.Add(new LiteralControl(objobjCookiefieldList[rowcount].CookieFieldValue));
}
// Add the cell to the HtmlTableRow Cells collection.
row.Cells.Add(cell);
}
// Add the row to the HtmlTable Rows collection.
table.Rows.Add(row);
}
// Add the control to the Controls collection of the
// PlaceHolder control.
Place.Controls.Clear();
Place.Controls.Add(table);
تابع Lead و Lag در Sql Server چست و چه کاربردی دارد؟
در زمان طراحی کوئری، خیلی از مواقع نیاز است که به سطرهای قبل یا بعد از سطر جاری دسترسی داشته باشیم. یکی از روش های موجود استفاده از تابع Row number بود که از نسخه 2005 اس کیو ال به بعد پشتیبانی می شود. اما از نسخه 2012 دو تابع مفید Lead وLag قابل استفاده هستند.
تابع LAG : دستیابی به مقدار یک فیلد در سطرها قبل از سطر جاری
LAG (value_expression [,offset] [,
default
]) OVER ([query_partition_clause] order_by_clause)
تابع LEAD : دستیابی به مقدار یک فیلد در سطرها بعد از سطر جار
LEAD (value_expression [,offset] [,
default
]) OVER ([query_partition_clause] order_by_clause)
پارامترهای موجود در هر تابع به صورت زیر هستند:
value_expression : نام ستون مورد نظر
Offset: تعداد سطر بعد/قبل از سطر جاری
Default: مقدار پیش فرض در صورت خارج از رنج بودن Offset
query_partition_clause: گروهبندی روی ستون خاص
روش استفاده از تابع Lead را با یک مثال شرح خواهیم داد در این مثال قصد داریم کارمندان یک روز به تاریخ شروع پروژه بعدی را اضافه کنیم.
SELECT
*,
DATEADD(
DAY
, -1, LEAD(Emp_Startdate, 1,
'01-Jan-2100'
)
--کسر کردن یک روز از تاریخ رکورد بعدی
OVER (PARTITION
BY
Emp_Name
ORDER
BY
Emp_Startdate
ASC
))
AS
EndDate
FROM
Employee
توضیحات کامل این مقاله را در سایت پروژه چی بخوانید
نحوه استفاده از Pivot در Sql Server
Pivot table ها در واقع همانند سایر Table های دیگر می باشند فقط با این تفاوت که در نمایش ردیف و ستون های آنها مقداری تفاوت وجود دارد .
دستور pivot جزو دستوراتی از Sql server می باشد که ممکن است در بیشتر پروژه هایمان برای نمایش گزارشات مختلف به استفاده از آن نیاز داشته باشیم . کاربرد دستور pivot تقریبا تبدیل نمایش خروجی یک کوئری از حالت ردیفی به ستونی می باشد . به صورت خیلی خلاصه بخواهیم نحوه کارکرد این دستور را بیان کنیم ، کار آن یک چرخش 90 درجه جداول می باشد ، یعنی جای ستون و ردیف ها را با هم جابه جا کنیم .
در این مثال قصد داریم مجموع ورودی و خروجی های یک جدول خاص از انبار را استخراج کنیم.
SELECT
*
FROM
(
SELECT
[type]
FROM
stock
WHERE
[type]
IN
(
's'
,
'i'
)
) t
PIVOT (
COUNT
(t.[type])
FOR
[type]
IN
(s ,i)
) p
توضیحات کامل این مقاله را در سایت پروژه چی بخوانید
نحوه آپلود فایل با حجم زیاد با استفاده از ASP.NET
برای اینکه بتوانیم فایلی با حجم زیاد در محیط برنامه نویسی سی شارپ با ای اس پی دات نت آپلود کنیم فقط کافی است که کدهای زیر را در وب کانفیگ Webconfig تغییر دهیم.
ابتدا مقدار زیر را قرار دهید.
<system.web>
<httpRuntime shutdownTimeout="120" executionTimeout="3600" useFullyQualifiedRedirectUrl="true" maxRequestLength="1048576" requestLengthDiskThreshold="12288" requestPathInvalidCharacters="<,>,*,%,:,\,?" requestValidationMode="2.0" />
</system.web>
بعد از آن مقدار زیر را هم تغییر دهید
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="100000000" />
</requestFiltering>
</security>
</system.webServer>
نحوه فراخوانی یک وب سرویس asmx
در این مثال قصد داریم که یک وب سرویس که با استفاده از روش Soap کار شده است را نمایش دهیم و این وب سرویس را در بخش رفرنس ها اضافه کرده ایم. و نهایتا بتوانیم از آنها استفاده کنیم.
WSHttpBinding binding = new WSHttpBinding ();
binding.MaxReceivedMessageSize = 2147483647;
binding.MaxBufferPoolSize = 2147483647;
binding.ReaderQuotas.MaxArrayLength = binding.ReaderQuotas.MaxBytesPerRead = binding.ReaderQuotas.MaxStringContentLength = 2147483647;
binding.CloseTimeout = binding.OpenTimeout = binding.ReceiveTimeout = binding.SendTimeout = new TimeSpan (3,0,0);
//binding.MessageEncoding = WSMessageEncoding.Mtom;
EndpointAddress ea = new EndpointAddress ("http://xxxxxxxxxxxxxxxxx/TestService.svc");
ShahrbanServiceTest.ShahrbanServiceClient service = new ShahrbanServiceTest.ShahrbanServiceClient (binding,ea);
service.ClientCredentials.Windows.ClientCredential.Domain = "babakhani.ir";
service.ClientCredentials.Windows.ClientCredential.UserName = "babakhani";
service.ClientCredentials.Windows.ClientCredential.Password = "sirous";
ShahrbanServiceTest.DistrictCartableFilterType CartableFilter = ShahrbanServiceTest.DistrictCartableFilterType.Normal;
//var spr = service.GetAllDistrictWarning ();
DateTime Date1 = Convert.ToDateTime ("2015-11-18");
DateTime Date2 = Convert.ToDateTime ("2015-11-16");
var spr = service.GetDistrictMainFilesByDate (Date2,Date1);
نحوه دانلود فایل متنی در برنامه نویسی #C
در این مثال قصد داریم که یک متنی را در داخل برنامه توسط برنامه نویسی سی شارپ تولید کنیم و کاربر نهایی بتواند آن را دانلود کند.
string text="1,12154 \n 45545,واریز بهمن, \n sdfa,48575,kjdk ";
StringWriter ObjStringWrite=new StringWriter ();
ObjStringWrite.Write (text);
// Response.ContentType="application/ocetet-stream"; //For Excel
Response.ContentType = "text/plain"; //For Text File
//Response.AddHeader ("content-disposition","attachment;filename="+"test.txt");
Response.AddHeader ("content-disposition","attachment;filename=test.txt");
Response.Clear ();
using (StreamWriter ObjStramWriter=new StreamWriter (Response.OutputStream,Encoding.UTF8))
{
ObjStramWriter.Write (ObjStringWrite.ToString());
Response.End ();
}
نحوه افزودن یک برنامه تحت ویندوز به بخش SysTry
در این مثال ما یک برنامه تحت ویندوز با استفاده از زبان برنامه نویسی #C نوشته ایم و قصد داریم هرگاه بروی دکمه Minimize کلیک کردیم برنامه به بخش Systry اجرا شود و با دابل کلیک بر روی آن برنامه دوباره نمایش داده شود.
کد های مربوط به این کار بصورت زیر می باشد.
private void IntervalEarthquake_Resize(object sender, EventArgs e)
{
mynotifyicon.BalloonTipTitle = "برنامه تست";
mynotifyicon.BalloonTipText = "جهت تست این برنامه استفاده می شود";
if (FormWindowState.Minimized == this.WindowState)
{
mynotifyicon.Visible = true;
mynotifyicon.ShowBalloonTip(500);
this.Hide();
}
else if (FormWindowState.Normal == this.WindowState)
{
mynotifyicon.Visible = false;
}
}
private void mynotifyicon_MouseDoubleClick(object sender, MouseEventArgs e)
{
this.Show();
this.WindowState = FormWindowState.Normal;
}