ABA


"לאא למה זה לא עובד :|||| פרמטרים בASPNET"
גירסת הדפסה        
קבוצות דיון בניית אתרים נושא #12720 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 12720
DLN
חבר מתאריך 20.4.07
15884 הודעות
   21:54   09.08.07   
אל הפורום  
  לאא למה זה לא עובד :|||| פרמטרים בASPNET  
 
   זה מחרפן אותי חח
יש לי בעיה כזו
שאני מנסה להכניס משתנה לתוך הDB ישירות מהמשתנה כלומר בצורת

strcmd = "INSERT INTO blah(blah) VALUES('" + blah.Text + "')"

עברית הופכת לסימני שאלה
שאני עושה את זה ישירות בתוך השאילתה כלומר

strcmd = "INSERT INTO blah(blah) VALUES('בלה')"

זה עובד יופי
אז חשבתי לנסות להשתמש בפרמטרים אולי זה יעבוד :|
רק הבעיה שזה לא עובד :| זה לא מכניס לי אף ערך :| Null :|
הנה הקוד :|

void sendbutton_Click(object sender, EventArgs e)
{
string strSQL= "INSERT INTO talkback(headline,content,writer,email) VALUES (@HEADLINE,@CONTENT,@WRITER,@EMAIL)";
MySqlCommand strCOM = new MySqlCommand(strSQL, dbcon);
strCOM.CommandType = CommandType.Text;

MySqlParameter headparam = new MySqlParameter();
headparam.ParameterName = "@HEADLINE";
headparam.MySqlDbType = MySqlDbType.VarChar;
headparam.Size = 255;
headparam.Direction = ParameterDirection.Input;
headparam.Value = "למה עברית לא עובדת?";

MySqlParameter contentparam = new MySqlParameter();
contentparam.ParameterName = "@CONTENT";
contentparam.MySqlDbType = MySqlDbType.VarChar;
contentparam.Size = 255;
contentparam.Direction = ParameterDirection.Input;
contentparam.Value = contentpost.Text.ToString();

MySqlParameter writerparam = new MySqlParameter();
writerparam.ParameterName = "@WRITER";
writerparam.MySqlDbType = MySqlDbType.VarChar;
writerparam.Size = 255;
writerparam.Direction = ParameterDirection.Input;
writerparam.Value = writerpost.Text.ToString();

MySqlParameter emailparam = new MySqlParameter();
emailparam.ParameterName = "@EMAIL";
emailparam.MySqlDbType = MySqlDbType.VarChar;
emailparam.Size = 255;
emailparam.Direction = ParameterDirection.Input;
emailparam.Value = emailpost.Text.ToString();

strCOM.Parameters.Add(headparam);
strCOM.Parameters.Add(contentparam);
strCOM.Parameters.Add(writerparam);
strCOM.Parameters.Add(emailparam);

strCOM.Connection.Open();
strCOM.ExecuteNonQuery();
strCOM.Connection.Close();
ModalPopupExtender1.Hide();
Response.Redirect("default.aspx");
}


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  ממ גיליתי את הבעיה :| משום מה MYSQL לא אוהב את הסימן אז השתמשתי ב? DLN 09.08.07 23:16 1
     זה עדיין לא פותר לי את הבעיה שזה מופיע כסימני שאלה :| DLN 09.08.07 23:17 2
  באיזה קידוד אתה משתמש באתר? lior066 10.08.07 14:54 3
     ממ אין בדיוק אתר זה רק מערכת הפורום DLN 10.08.07 15:22 4
         זה לא משנה שאתה מצליח להכניס ישירות lior066 10.08.07 15:38 5
             ממ DLN 10.08.07 21:05 6
                 זאת סיפרייה אחי.. lior066 11.08.07 00:37 7
                     הבנתי מה היא עושה סך הכל DLN 11.08.07 01:27 8

       
DLN
חבר מתאריך 20.4.07
15884 הודעות
   23:16   09.08.07   
אל הפורום  
  1. ממ גיליתי את הבעיה :| משום מה MYSQL לא אוהב את הסימן אז השתמשתי ב?  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
DLN
חבר מתאריך 20.4.07
15884 הודעות
   23:17   09.08.07   
אל הפורום  
  2. זה עדיין לא פותר לי את הבעיה שזה מופיע כסימני שאלה :|  
בתגובה להודעה מספר 1
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
lior066

   14:54   10.08.07   
אל הפורום  
  3. באיזה קידוד אתה משתמש באתר?  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
DLN
חבר מתאריך 20.4.07
15884 הודעות
   15:22   10.08.07   
אל הפורום  
  4. ממ אין בדיוק אתר זה רק מערכת הפורום  
בתגובה להודעה מספר 3
 
   לא שמתי תגית meta עם הקידוד אם זאת השאלה...
הבעיה היא בקידוד של הstring לדעתי
כי אני מצליח להכניס עברית לDB, אבל לא דרך משתני string :|


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
lior066

   15:38   10.08.07   
אל הפורום  
  5. זה לא משנה שאתה מצליח להכניס ישירות  
בתגובה להודעה מספר 4
 
   ערכתי לאחרונה בתאריך 10.08.07 בשעה 15:40 בברכה, lior066
 
האתר עצמו צריך להיות באותו קידוד , זה מה שמגשר לך בין המסד נתונים לבין האתר שלך כשהאתר שלך עובד בקידוד אחר הוא מכניס את אותו סוג קידוד למסד נתונים

בוא נעזור לך פה
תעשק קידוד UTF8 שזה הכי טוב שיכול להיות תומך בהכל ...

עכשיו תהפוך גם את המסד נתונים שלך אם הוא לא בUTF8 ל UTF8

ותשתשמש בספריית הקוד הזאת:


Imports System
Imports System.Data
Imports System.Data.Odbc
Imports System.IO
Imports MySql.Data.MySqlClient


Namespace DataAccessLayer
Public Class OleDB
Private x As OdbcDataReader

Private mvarCommandObject As MySqlCommand
Private mvarConnectionObject As MySqlConnection
Private mvarSQLString As String
Private mvarConnectionString As String
Private mvarRecordsAffected As Integer
Private mvarCommandTimeOut As Integer = 15


Public Property ConnectionString() As String
Get
ConnectionString = mvarConnectionString
End Get
Set(ByVal Value As String)
mvarConnectionString = Value
End Set
End Property


Public Property SQLString() As String
Get
SQLString = mvarSQLString
End Get
Set(ByVal Value As String)
mvarSQLString = Value
End Set
End Property


Public Property ConnectionObject() As MySqlConnection
Get
ConnectionObject = mvarConnectionObject
End Get
Set(ByVal Value As MySqlConnection)
mvarConnectionObject = Value
End Set
End Property


Public Property CommandObject() As MySqlCommand
Get
CommandObject = mvarCommandObject
End Get
Set(ByVal Value As MySqlCommand)
mvarCommandObject = Value
End Set
End Property


Public Property RecordsAffected() As Integer
Get
RecordsAffected = mvarRecordsAffected
End Get
Set(ByVal Value As Integer)
mvarRecordsAffected = Value
End Set
End Property


Public Property CommandTimeOut() As Integer
Get
CommandTimeOut = mvarCommandTimeOut
End Get
Set(ByVal Value As Integer)
mvarCommandTimeOut = Value
End Set
End Property


Public Function Execute(ByVal strs As String) As String
mvarSQLString = strs
mvarConnectionString = "Data Source=localhost;Database=scms;User ID=root;Password=0000000000;"
mvarConnectionObject = New MySqlConnection(mvarConnectionString)
mvarCommandObject = New MySqlCommand(strs, mvarConnectionObject)
mvarConnectionObject.Open()

'mvarCommandObject.CommandType = CommandType.Text
'mvarCommandObject.CommandTimeout = 10
'mvarCommandObject.CommandText = mvarSQLString
'mvarCommandObject.Connection = mvarConnectionObject
Dim Xstr As String
Xstr = strs.Substring(0, 6).ToUpper
Try
If Xstr <> "SELECT" Then
mvarRecordsAffected = mvarCommandObject.ExecuteNonQuery
End If
Return "OK"
Catch Ex As Exception
mvarConnectionObject.Close()
mvarCommandObject = Nothing
mvarConnectionObject = Nothing
mvarSQLString = Nothing
Return Ex.ToString
End Try
End Function

Public Sub close()
mvarConnectionObject.Close()
mvarCommandObject = Nothing
mvarConnectionObject = Nothing
mvarSQLString = Nothing
End Sub
End Class
End Namespace

אופן שימוש
StrSql = "Select * from articals order by catid asc"
If Database.Execute(StrSql) = "OK" Then


If _Style = StyleType.Titles Then
rs = Database.CommandObject.ExecuteReader()
Do While (rs.Read())
ArtBox.Text += "<a href='./Art.aspx?id=" & rs("id") & "' ><span class='Art_titls'>" & rs("a_title") & "</span></a><br />"
Loop
rs.Close()
End If
Database.close()
End If ' End database

תוודא שיש לך את הקונקטורים החדשים


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
DLN
חבר מתאריך 20.4.07
15884 הודעות
   21:05   10.08.07   
אל הפורום  
  6. ממ  
בתגובה להודעה מספר 5
 
   תודה על העזרה דבר ראשון
אבל אני מתכנת בC# ואני לא רוצה להתחיל להסתבך עם עצמי עם VB.NET
אני גם לא 100% מבין מה עשית :|


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
lior066

   00:37   11.08.07   
אל הפורום  
  7. זאת סיפרייה אחי..  
בתגובה להודעה מספר 6
 
   אתה יכול פשוט מאוד לשנות את החיבור שלך לקמפל אותה ולעבור ל C# ולא יהיה לך בעייה עם הקוד.

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

עכשיו במקום כל פעם ליצור התקשרות חדשה למסד נתונים ולהעביר את הפרטי חיבור והכל פשוט הספרייה הזאת מטפלת בהכל פותחת לך את החיבורים וכל מה שאתהצריך לעשות רק להביא לה את המשפט SQL והיא תחזיר לך OK אם הכל הלך טוב ו EXEPTION אם משהו קרה ,אם OK אתה יכול להשתמש בנתונים כמו שהראתי לך באופן שימוש בדוגמא , ותוודה רק שאתה סוגר את כל היציאות שאתה פותח. חשוב מאוד!


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
DLN
חבר מתאריך 20.4.07
15884 הודעות
   01:27   11.08.07   
אל הפורום  
  8. הבנתי מה היא עושה סך הכל  
בתגובה להודעה מספר 7
 
   אבל אני לא כל כך אוהב להשתמש בקוד שאני לא מבין 100% ואני פשוט לא מסוגל לקרוא קוד בVBNET חח
תודה בכל מקרה אני אסתכל יותר מאוחר על מה בדיוק שונה פה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net