נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: פתרון לבעיית קידוד עברית +עבודה עם פרמטר

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
דניאל דיין d
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 03 August 2007
מדינה: Israel
משתמש: מנותק/ת
הודעות: 17
נשלח בתאריך: 03 September 2007 בשעה 06:05 | IP רשוּם
ציטוט דניאל דיין d



אם ישנם הערות אשמח לשמוע

יכול להיות שיש כאן קצת מידע לא קשור לבסיסי נתונים ממש אבל בשביל התמונה הכללית הוספתי אותו



כאשר עובדים עם מסד נתונים MSsql =sql server

קבצים : asp ; aspx;
קבצים HTML

שפות :C# ;VB   ביחד עם sql


CodePage

ראשית יש לקודד דף (קידוד הדף זהו הקידוד לשרת הווה אומר באיזו שפה אנחנו מדברים עם השרת,שליחה,הוספה , עדכון ,וכ"ו)  הנה כך >



<%@ Page Language="C#" CodePage="65001"  AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" Debug="true" Culture="he-IL" %





charset

שנית יש לקודד את " הדפדפן " (כך שכל מי שפותח את הדף יראה עברית)
הנה כך (להוסיף  >  בהתחלה < בסוף כמובן


meta content="text/html; charset=utf-8 " http-equiv="content-type"  /



עבודה עם פרמטרים - ----- > שימו לב להגדרת סוג    SqlDbType.NVarChar  
קובץ aspx ; asp


אנחנו נקרא גם לשגרה בה יש את ההגדרה לעדכון בסיס הנתונים - שם השגרה הוא : UPdatePhoto1




        cmd.CommandType = CommandType.StoredProcedure;
        cmd.CommandText = "UPdatePhoto1";


        cmd.Parameters.Add(new SqlParameter("@param2", SqlDbType.NVarChar));
        cmd.Parameters["@param2"].Direction = ParameterDirection.Input;
        cmd.Parameters["@param2"].Value = TextBoxdisHE1.Text;


כעת נעבור ליצירת הטבלה עצמה
ככלל בכל עבודה עם השפה העברית , נגדיר את כל השדות עם  N (מסמן עבודה עם נתונים של unicode)

לדוגמה  Nvarchar ,Nchat,Ntext  וכ"ו

שימו לב לשורה >
ALTER TABLE PhotoPage ALTER COLUMN disHE NVarChar(max) COLLATE Hebrew_CS_AI

שימו לב גם ל >NVarChar(max)

וגם ל > Hebrew_CS_AI

לכל שרת ישנה ברירת מחדל לאחסון הנתונים , ברירת המחדל היא ברוב המקרים לאנגלית (או סינית אם תרצו  .....)

ההגדרה היא מסוג collation שמגדירה את סוג "החזקת" הנתונים ,אנחנו יכולים לשנות הגדרה זו ע"י הוספת השורה שלעיל

שורה זו כופה הגדרת collation על עמודה בשם disHE להיות מוגדרת לנתונים בעברית

אנו משתמשים בפקודה COLLATE לשם כך !

כמו שרואים אפשר להגדיר collation על עמודה אחת , כך שכל עמודה ועמודה "מדברת " בנפרד .



USE [AMPMDB1]
GO
/****** Object:  Table [dbo].[PhotoPage]    Script Date: 09/02/2007 09:22:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[PhotoPage](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [link] [nvarchar](max) NULL,
    [disHE] [nvarchar](max) NULL,    העמודה בעברית בה אנו משנים את הגדת ברירת המחדל
    [disEN] [nvarchar](max) NULL,
    [disFR] [nvarchar](max) NULL,
CONSTRAINT [PK_PhotoPage] PRIMARY KEY CLUSTERED
(
    [ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
ALTER TABLE PhotoPage ALTER COLUMN disHE VarChar(max) COLLATE Hebrew_CS_AI

GO
SET ANSI_PADDING OFF





כעת נראה את השגרה UPdatePhoto1  לה אנו קוראים

שימו לב שסוג הפרמטר בשם @param2 מוגדר כ -  Nvarchar


ALTER PROCEDURE [dbo].[UPdatePhoto1]
@param1 varchar(MAX),@param2 Nvarchar (max),@param3 varchar(MAX),@param4 varchar(MAX)



AS
INSERT INTO [PhotoPage] (link ,disHE,disEN ,disFR )
VALUES ( @param1 ,@param2,@param3 ,@param4)


אם יש הארות והערות אשמח לשמוע
חזרה לתחילת העמוד הצג את כרטיס החבר של דניאל דיין d חפש הודעות אחרות של דניאל דיין d
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

קפיצה לפורום
אינך יכול/ה לשלוח נושאים חדשים בפורום זה
אינך יכול/ה להגיב לנושאים בפורום זה
אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה
אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה
אינך יכול/ה לצור סקרים בפורום זה
אינך יכול/ה להצביע בסקרים בפורום זה